在编写arm版上运行的qt程序,当然也想在pc上运行下看看。
但是arm版需要个单独的ssl库,而pc版不需要加入这个库。这该怎么搞呢?
搜了下,可以通CONFIG或DEFINES。比如
DEFINES += XXX
contains(DEFINES, XXX) {
include xxx
LIBS += xxx
}
但是这样,我还是需要来回注释或取消注释掉 DEFINES += XXX这一行。
能不能qmake或make时,指定个条件来满足?不想来回修改pro文件。
pc环境是ubuntu,所以不能用win、unix来分辨。
最近编辑记录 Gentlepig (2024-01-06 09:10:07)
离线
contains(QT_ARCH, arm){
LIBS += xxx
}
离线
感谢两位,我没用qt creator,而是直接qmake xxx.pro,然后再make的。
所以这个额外的参数,DEFINES+=arm或QT_ARCH+=arm,如何在qmake或make时指定?
离线
不同平台用不同的 .pro 文件,把共性写到 .pri 文件
是个办法,谢谢。
最近编辑记录 Gentlepig (2024-01-06 10:27:34)
离线
现在工程目录是这样的:
can2socket.pro 和 src 目录 同级,src目录下有有个src.pro。
现在在can2socket.pro里,DEFINES+=t113,结果传递不到src.pro文件里...
我是想定义两个顶层pro文件,编译时用顶层pro文件分别编译出pc版和arm版。
离线
现在工程目录是这样的:
can2socket.pro 和 src 目录 同级,src目录下有有个src.pro。现在在can2socket.pro里,DEFINES+=t113,结果传递不到src.pro文件里...
我是想定义两个顶层pro文件,编译时用顶层pro文件分别编译出pc版和arm版。
如果不用qtcreator的话,建议用cmake。cmake要灵活点,qmake的限制比较多不灵活,Qt官方也开始放弃qmake转投cmake了。
另外QT_ARCH类似于编译器宏,是内置在编译套件里的。
离线