如何使用 qmake 使中间目标文件不是库?

How to make intermediate object file not a library using qmake?

文件系统布局:

MyProject
|_ myproject.pro
|_ FuncA
   |_ core.cpp
   |_ core.h
   |_ core.pro
|_ app
   |_ main.cpp
   |_ app.pro

我只想在 FuncA 中编译 "core.cpp" 以生成目标文件而不是库。即"gcc -c core.cpp"。在应用程序中,我想让主程序链接之前创建的 core.o。

在这种情况下,我该如何制作core.pro?我应该使用哪个模板?

可以使用 core.pro 的通用 app 模板。它会创建中间 core.o 无论如何,你可以 link 稍后在 app.pro 中像这样:

LIBS += $$PWD/../FuncA/core.o 

我用 "static library config" 解决了这个问题,这样它就不会生成“.so”库,然后 link 带有主程序的静态库。

TEMPLATE = lib
CONFIG += staticlib