我正在开发一个Apache2模块,作为一个大型项目的子项目。源文件是(例如) module_example.c。Apache2模块是用apxs2编译的,因此:
% apxs2 -c module_example.c我已经成功地将规则(基于ODB工作方式的模式)添加到Qt Creator .pro文件中,以查找和使用apxs2,如下所示:
APXS_FLAGS =
APXS_FILES += module_example.c
for(dir, APXS_FILES) {
APXS_PWD_FILES += $$PWD/$${dir}
}
apxs.name = apxs2 -c ${QMAKE_FILE_IN}
apxs.input = APXS_PWD_FILES
apxs.output = ${QMAKE_FILE_BASE}.so
apxs.commands = apxs2 $$APXS_FLAGS -c ${QMAKE_FILE_IN}
apxs.depends = $$APXS_PWD_FILES
apxs.clean = module_${QMAKE_FILE_BASE}.so
QMAKE_EXTRA_COMPILERS += apxsQtCreator正确地使用apxs2编译模块(虽然它将二进制文件保留在源目录中,而不是构建目录,这并不理想),但也尝试用GCC编译它(失败)。我如何告诉Qt使用我的“额外编译器”而不是普通的编译器?将扩展名更改为其他内容(例如,module_example.apxs)似乎不是一个选项,因为apxs2没有指定C源文件扩展名的选项。有什么想法吗?
发布于 2014-01-20 18:08:41
不是做的,而是qmake。您需要从module_example.c中删除SOURCES。问题在于您没有显示的.pro文件的部分。
如果希望轻松地从Qt访问该文件,请将其添加到OTHER_FILES中。它将显示在IDE中的项目结构中,但默认情况下不会编译。
另外,您应该告诉apxs将输出到构建路径。你需要${OUT_PWD}。
https://stackoverflow.com/questions/21238093
复制相似问题