加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – QT Creator – 在我自己的库中使用外部库

发布时间:2020-12-16 07:00:15 所属栏目:百科 来源:网络整理
导读:我正在 Linux上用cT Creator开发一个应用程序 我创建了自己的库,以便在一组应用程序中使用一些公共类. 在我创建的库中,我使用了另一个外部静态库(libSDL.a). 我已将我的库配置为静态库(* .a),并且编译时没有任何问题. 然后我将我的库添加到另一个应用程序并
我正在 Linux上用cT 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 += ...

解决方法

在应用程序的.pro中,您需要:

INCLUDEPATH = LibraryPath(这指向头文件的目录.)

DEPENDPATH = LibraryPath(这也指向头文件的目录.)

LIBS = -LDebugOrReleasePath -lLibraryName(这是lib-filename在开头减去’lib’,在结尾减’.a’.)

完成后,检查您的自定义库中的#include是否仍然有效.

在静态libary的.pro文件中你不需要触摸任何东西,也许添加’CONFIG = release’.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读