使用Qt Creator开发Apache2模块

时间:2014-01-20 15:40:19

标签: qt apache2 qt-creator

我正在开发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 += apxs

QtCreator使用apxs2正确编译模块(尽管它将二进制文件保留在源目录而不是构建目录中,这是不理想的),但尝试使用GCC编译它(哪个失败了)。我如何告诉Qt Creator使用我的“额外编译器”而不是正常的?将扩展名更改为其他内容(例如module_example.apxs)似乎不是一个选项,因为apxs2没有选项来指定C源文件的扩展名。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这不是Qt Creator所做的,而是qmake。您需要从module_example.c中删除SOURCES。问题出在您未显示的.pro文件中。

如果您希望从Qt Creator轻松访问该文件,请将其添加到OTHER_FILES。它将显示在IDE中的项目结构中,但默认情况下不会编译。

此外,您可以告诉apxs输出到构建路径。您需要${OUT_PWD}