从bash而不是QtCreator执行时,QMake结果(makefile)不同
QMake result (makefile) differs when executing from bash instead of QtCreator
我的目标是将我的Qt项目添加到Jenkins构建服务器中,用于夜间构建。因此,我想从命令行编译我的项目。我复制了构建配置中的构建步骤:
"/opt/fslc-x11/2.5/sysroots/x86_64-fslcsdk-linux/usr/bin/qt5/qmake" "/home/xxxx/repositories/xxx/xxx.pro" -spec linux-oe-g++ && /usr/bin/make qmake_all
"/usr/bin/make"
我在构建目录中执行这些命令。问题出在qmake命令中。qmake命令生成makefile,但当我在命令行中而不是在QtCreator中生成它时,这个makefile就不同了。make之后的二进制结果当然非常不同。
命令行中的qmake命令似乎创建了一个调试生成文件,而不是发布生成文件:
CFLAGS = -pipe -02 -pipe -g -feliminate-unused-debug-types --sysroot=.........
-02 -pipe -g -feliminate-unused-debug-types
部分是我在命令行中运行qmake时添加的唯一内容(使用diff检查)。
我试过以下几种:
- 将
CONFIG+=release
添加到qmake命令 - 将
CONFIG-=DEBUG
添加到qmake命令中
此外,我已经验证了系统环境和终端模拟器是相同的。
我的问题归结为:
- 为什么qmake在从命令行运行时添加(调试)标志
- QtCreator是否为我可能错过的环境添加了更多
如果您需要有关设置或生成的生成文件的更多信息,请告诉我。
好的。长话短说:我试着用标准qmake为本地Linux发行版编译,我的问题得到了解决。
问题似乎在于目标的自定义qmake(x86_64-fslcsdk-linux)。我不会在这个问题上花更多的时间,所以请随意添加一个更令人满意的答案。我很乐意尝试一下:)。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- valgrind-hellgrind与泄漏检查的结果不同
- 用C++20 fmt限制结果的总大小
- 如何返回一个类的两个对象相加的结果
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如果我std::dynamic_pointer_cast并且底层dynamic_cast的结果为null,那么返回的sh
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 序列化,没有库的整数,得到奇怪的结果
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 在更改for循环的第三部分后,未使用for循环结果
- 使用++运算符会导致意外的结果
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- C++Brute Force攻击函数不会返回结果
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 算术运算的结果类似于:C浮点变量中的1/3
- ";结果类型必须是可从输入范围的值类型""构造的;创建std::vector时
- 密码登录程序将永远循环并显示不正确的结果
- 如何让C++'tally up'结果并制定计划?
- qmake:检测目标位宽(32 位或 64 位)
- 从bash而不是QtCreator执行时,QMake结果(makefile)不同