这似乎应该非常简单,但似乎并没有像人们期望的那样做到这一点.
我在qt creator中打开了两个单独的c ++项目,我想在另一个项目中包含/编译一个项目.
这是我的布局:
project_a/
project_a.pro
someheaders.h
somecode.cpp
main.cpp
project_b/
project_b.pro
someheaders.h
somecode.cpp
main.cpp
Run Code Online (Sandbox Code Playgroud)
基本上我希望能够在项目b中包含来自project_a的文件.我已经将project_a设置为project_b中的依赖项,但这似乎完全无效,作为使用这两个项目的一种方法.我该怎么办?
为了打开和构建两个项目,请使用类型为meta-project的项目subdirs:
TEMPLATE = subdirs
SUBDIRS += project_a project_b
# Use ordered build, from first subdir (project_a) to the last (project_b):
CONFIG += ordered
Run Code Online (Sandbox Code Playgroud)
您应该将子项目放置any_name.pro到directory any_name,并将此目录放置在meta-project .pro文件的旁边。
如果要包含其他项目的标头,请编写project_a.pri包含以下内容的文件:
# PWD expands to directory where project_a.pri placed.
INCLUDEPATH += $$PWD/
INCLUDEPATH += $$PWD/network
Run Code Online (Sandbox Code Playgroud)
比将此文件包含到project_b.pro中:
include(../project_a/project_a.pri)
Run Code Online (Sandbox Code Playgroud)
如果要将project_a用作库,请将其更改为TEMPLATE = lib并使用向导添加库,该向导project_b.pro在编辑器中打开时可在上下文菜单中使用。