qmake:将单个cpp文件编译成可执行文件

时间:2015-02-16 03:39:35

标签: c++ qt qmake

我在QT中有一个项目,我想使用qmake编译一个额外的cpp文件(进入独立的可执行文件)没有以任何方式连接到我的应用程序甚至QT(它非常非常简单的纯C ++程序)。有没有办法在没有重组整个项目结构的情况下做到这一点?我是否需要为每个可执行文件单独的.pro文件,还是有其他方法可以简单地编译一个普通的C ++文件?

2 个答案:

答案 0 :(得分:3)

您可能知道qmake -project会生成一个.pro文件,其中包含包含整个源文件和文件头文件夹的文件夹名称,如果您填写此专业文件,则make您的项目是将从您的新cpp文件中获取编译的.o文件,即使它没有直接连接到您的Qt项目。

但是如果这个文件有main()函数,那么编译器会有多个main()定义错误。

您需要重建该文件

如您所知,只需编译一个标准普通c ++文件即可

g++ source.cpp -o excutable_name.exe

通过两个步骤进行更严格的编译:

g++ -Wall -pedantic -ansi source.cpp -c compiled_file_name.o
g++  compiled_file_name -o excutable_name.exe

但是如果您打算使用与Qt相关的代码,则必须包含Qt标头并链接必要的库:

g++ -Wall source.cpp -c compiled_file_name.o -L qt/library/path -lQtGui -lQtCore  -lQtother_necessary_libraries -I Qt/include/path -I Qtother_necessary_include_paths

答案 1 :(得分:1)

要制作其他可执行文件,您可以在.pro中使用system(),如下所示:

system(g++ otherapp.cpp)

每次拨打qmake时都会构建。但是,如果您想在更改源代码时自动构建其他应用,请改用QMAKE_EXTRA_TARGETS