QtCreator项目有多个库和一个exe

rpg*_*rpg 6 c++ qt qmake

就像我在上一个问题中所说的那样,我打算将一个Qt项目从VC++移植到QtCreator.

该项目由4个子项目组成:其中3个是libs,最后一个是exe.子项目是分层的,这意味着每个层都具有与其下层的编译和链接时间相关性.

文件组织如下:

root
  lib1
  lib2
  lib3
  main
Run Code Online (Sandbox Code Playgroud)

我从头开始在QtCreator中创建了每个子项目.每个文件夹都包含一个具有相同名称的专业文件(例如:lib1 - > lib1.pro).使用这种方法,我已经构建了除最后一个必须链接可执行文件之外的所有项目.我收到了链接器错误,我通过手动编辑专业文件并添加以下代码来修复:

LIBS +=  ../path/lib1.a \
   ../path/lib2.a \
   ../path/lib3.a
Run Code Online (Sandbox Code Playgroud)

一切都很好,除了现在lib3抱怨它找不到lib2和lib1中的符号.Addind LIBS到lib2.pro文件不起作用.

我有一种感觉,我没有得到QtCreator与libs和可执行文件一起工作的方式.你如何组织这样一个项目,以便正确编译和链接?

rpg*_*rpg 4

在进一步研究这个问题之后,我记得对于 GCC 工具链来说,链接器参数的顺序很重要。

反转 LIBS 条目就成功了。