- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如 Undocumented qmake 中所述,我在我的 qmake 项目文件中声明了一个额外的编译器:
TEST = somefile.h
test_c.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}_1.cpp
test_c.input = TEST
test_c.commands = C:/somedir/some.exe /i ${QMAKE_FILE_IN} /o ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}_1.cpp
test_c.variable_out = SOURCES
test_c.name = MyTestC
QMAKE_EXTRA_COMPILERS += test_c
这工作正常。但是我也想生成一个头文件。我可以轻松制作第二个自定义工具来解析此文件(或文件,如果 >1 将在 TEST 中),但我不想解析每个文件两次。我试过:
test_c.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}_1.cpp \
${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}_2.cpp
只是为了测试额外的编译器每次运行可以生成两个文件。我预计会出现诸如“
file somefile_2.cpp doesn't exist
”之类的错误,但项目编译没有错误,第二个输出文件被忽略。在 Makefile 中
somefile_2.cpp
不存在。
tool1.variable_out = TOOL_1_OUT
,并添加两个额外的编译器 toolN.input = TOOL_1_OUT
只需“解压缩”存档文件(每个工具一个)并将它们附加到一些变量。.output_function
做实验选项。制作一个返回与 .output
同名的 qmake 函数现在可以,但还将第二个文件名附加到 HEADERS
.最佳答案
您的变体 #2 是正确的想法。这对我有用:
defineReplace(addToHeaders) {
source = $$1
source_split = $$split(source, ".")
source_without_extension = $$first(source_split)
HEADERS += ${QMAKE_VAR_OBJECTS_DIR}$${source_without_extension}_1.h
return(${QMAKE_VAR_OBJECTS_DIR}$${source_without_extension}_1.cpp)
}
defineReplace(FILE_IN_addToHeaders) {
# qmake emits a warning unless this function is defined; not sure why.
}
TEST = somefile.h
test_c.output_function = addToHeaders
test_c.input = TEST
test_c.commands = cp ${QMAKE_FILE_IN} ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}_1.cpp ; cp ${QMAKE_FILE_IN} ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}_1.h
test_c.variable_out = SOURCES
test_c.name = MyTestC
QMAKE_EXTRA_COMPILERS += test_c
关于qmake 额外的编译器,每个文件有多个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17073531/
在我的源树中,我有一堆资源,我想用 make install 将它们复制到我定义的目标路径。由于资源树有很多很多子目录,我希望 qmake 递归查找所有文件。 我试过: resources.pa
我想配置我的 qmake,这样我的可执行文件就会进入 ./build/debug(或发布)。我已使用以下代码成功完成此操作: CONFIG(debug, debug|release) { DE
我想使用 Qt 制作一个 GUI 应用程序,但无法开始。我在编辑器中编写了以下代码: #include #include int main(int argc, char *argv[]) {
我已经在 qt/c++ 中创建了一个应用程序 浏览器/Browser.pro 要启动浏览器,我需要一个代理。我已经创建了一个代理并将其存储在浏览器文件夹中 Browser/Browser.pro
我厌倦了编译 Qwt (或与此相关的任何其他 Qt 项目)每次发生变化时,例如 Qt 或体系结构的版本。所以: 我想将 Qwt 的 make 文件添加到我的项目中,以便编译后的 Qwt 文件进入我的影
我有一个Qt 程序。当我运行 qmake -project 和 qmake 时,它运行良好。 但是,现在我该如何运行我的程序呢? 谢谢。 最佳答案 make它,如果你在 Linux 中使用它。使用 n
我正在使用 qmake 和 Visual Studio。在发布版本中,qmake 将/GL 和/O2 标志添加到所有项目,我需要为我的整个 Qt 项目中的某些库删除这两个标志。有办法吗? 最佳答案 我
...它应该做但没有做。 这对我来说是 qmake 的主要挫折之一。 qbs 是我们 Qt 的 future ,但现在我们坚持使用 qmake。那么,有什么办法呢? 最佳答案 我滥用 QMAKE_EX
我正在使用 PRE_TARGETDEPS生成源文件,我将生成的源文件添加到 SOURCES用于编译。 我的生成器的输出显然在 qmake 运行时不存在,所以 qmake 输出 WARNING: Fai
我正在尝试通过 ubuntu 中的命令行编译 Qt 应用程序。对我来说,“which qmake”给出了/usr/bin。我在 PATH 变量中给出了 Qt/bin 路径。如何将qmake路径更改为Q
当使用 QMAKE_CXX = clang++ 强制在安装了 gcc 和 clang 的系统上使用 clang 时,clang++ 用于编译 .cpp 文件,但 g++ 是用于最后的链接。这在使用 U
我有一个共享库(没有 QT 依赖)[库 B],它链接到另一个共享库(也没有 QT 依赖)[库 A]。 我正在使用 Qmake 和 QT Creator 1.3。问题是,当我构建库 B 并在可执行文件上
有没有办法为 qmake 中的不同目标指定单独的编译选项? 例如: QMAKE_CXXFLAGS += -O SOURCES += file1.cpp QMAKE_CXXFLAGS += -st
我加了 version.target = version.h version.commands = bash generate-version.sh QMAKE_EXTRA_TARGETS += ve
qmake允许通过这样的命令行界面提供变量: qmake "CONFIG += release" "MY_VAR = hello" 所以我可以使用 $$MY_VAR里面.pro文件。但是有可能以这种方
我有一个看起来像这样的 qmake 项目: TEMPLATE = lib CONFIG += dll TARGET = mydll SOURCES += ... HEADERS += .... 现在我
我在弄清楚 qmake 如何处理依赖于另一个静态库的静态库的包含依赖项时遇到了一些问题。 我的文件夹结构如下: --- src/ lib1/ src/ (.pro,*.h,*.cpp) lib
我试图将我的项目从一台带有 qt4 的计算机转移到另一台我刚安装 qt5 的计算机,但我遇到了一个非常奇怪的问题。 qmake 突然找不到我的任何源文件或头文件。 这是一个极简主义的例子: QT
如 Undocumented qmake 中所述,我在我的 qmake 项目文件中声明了一个额外的编译器: TEST = somefile.h test_c.output = ${QMAKE_VAR_
这行在qmake .pro文件中是什么意思? TEMPLATE=aux 它是not documented,但是现在我测试它似乎不会引起错误或任何错误,并且我已经看到它在.pro中使用。 最佳答案 Go
我是一名优秀的程序员,十分优秀!