qmake:将单个cpp文件编译成可执行文件
qmake: compile single cpp file into an executable
我在 QT 中有一个项目,我想使用 qmake 编译一个额外的 cpp 文件,该文件(到独立的可执行文件中)没有以任何方式连接到我的应用程序甚至 QT(它是非常简单的纯 C++ 程序) ).有没有办法在不重建整个项目结构的情况下做到这一点?我是否需要为每个可执行文件单独的 .pro
文件,或者是否有任何其他方法可以简单地只编译一个普通的 C++ 文件?
如您所知,qmake -project
将生成一个 .pro
文件,其名称与包含整个源和 header 文件的文件夹名称相同,如果您 qmake 这个 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 headers 和 link 必要的库:
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
要制作额外的可执行文件,您可以在 .pro 中使用 system()
,如下所示:
system(g++ otherapp.cpp)
每次调用 qmake
时都会构建。但是,如果您想在源更改时自动构建附加应用程序,请改用 QMAKE_EXTRA_TARGETS。
我在 QT 中有一个项目,我想使用 qmake 编译一个额外的 cpp 文件,该文件(到独立的可执行文件中)没有以任何方式连接到我的应用程序甚至 QT(它是非常简单的纯 C++ 程序) ).有没有办法在不重建整个项目结构的情况下做到这一点?我是否需要为每个可执行文件单独的 .pro
文件,或者是否有任何其他方法可以简单地只编译一个普通的 C++ 文件?
如您所知,qmake -project
将生成一个 .pro
文件,其名称与包含整个源和 header 文件的文件夹名称相同,如果您 qmake 这个 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 headers 和 link 必要的库:
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
要制作额外的可执行文件,您可以在 .pro 中使用 system()
,如下所示:
system(g++ otherapp.cpp)
每次调用 qmake
时都会构建。但是,如果您想在源更改时自动构建附加应用程序,请改用 QMAKE_EXTRA_TARGETS。