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