Linux上のc ++でQT Creatorでアプリケーションを開発しています
一連のアプリケーション全体でいくつかの共通クラスを使用できるように、独自のライブラリを作成しました。
私が作成したライブラリでは、別の外部スタティック ライブラリ (libSDL.a) を使用しました。ライブラリを静的ライブラリ (*.a) に構成しましたが、問題なくコンパイルされます。
次に、ライブラリを別のアプリケーションに追加し、いくつかのクラスを使用しました。アプリケーションをコンパイルしようとすると、ライブラリ内から他のライブラリへの関数呼び出しへの未定義の参照が取得されます。
私の理解では、静的ライブラリはコンパイル中にコピーされると想定されています。自分のライブラリにコピーする必要があるライブラリへの未定義の参照を取得するのはなぜですか?
*.pro ファイルでライブラリ プロジェクトを構成する方法を次に示します。
QT -= gui
TARGET = FoobarTools
TEMPLATE = lib
CONFIG += staticlib
CONFIG -= shared
DEFINES += FOOBARTOOLS_LIBRARY
INCLUDEPATH += ./include/SDL_Headers/
LIBS += -L./bin/ -lSDL
SOURCES += ...
HEADERS += ...
私のアプリケーション *.pro ファイルが私のライブラリをどのように使用しているかは次のとおりです。
QT -= gui
TARGET = FoobarApp
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
INCLUDEPATH += ./include/
LIBS += -L./bin/ -lFoobarTools
SOURCES += ...
HEADERS += ...