【发布时间】:2012-06-07 20:49:07
【问题描述】:
我正在 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 += ...
【问题讨论】: