2012-04-10 51 views
3

假设我在运行不同Linux发行版的2台计算机上编写代码。如何创建发行版特定的条件qmake项目

如何使qmake不同于这两个发行版并为这两个发行版分配特定的LIBS。

例如;

unix: { 

    ubuntu*: { 
      LIBS += -lcxcore -lhighgui -lm 
    } 

    gentoo*: { 
      LIBS += -lopencv_imgproc -lopencv_highgui -lm 
    } 

} 

回答

6

我想你可以运行“UNAME -A”,并使用正则表达式在你的.pro文件检查返回值:

UNAME = $$system(uname -a) 

contains(UNAME, YourRegExpToMatchGentoo): GENTOO = 1 
contains(UNAME, YourRegExpToMatchUbuntu): UBUNTU = 1 

contains(GENTOO, 1): { 
    LIBS += -lcxcore -lhighgui -lm 
} 

contains(UBUNTU, 1): { 
    LIBS += -lopencv_imgproc -lopencv_highgui -lm 
} 
+1

感谢@rogerzanoni,“载”是我是寻找。将您的版本更改为:'GENTOO = $$ system(cat/proc/version | grep -o Gentoo)' 'UBUNTU = $$ system(cat/proc/version | grep -o Ubuntu)' 'contains GENTOO,Gentoo的):{ 消息(这是Gentoo的) LIBS + = -lopencv_imgproc -lopencv_highgui -lm }' '含有(UBUNTU,Ubuntu的):{ 消息(这是Ubuntu的) LIBS + = -lcxcore ''lhighgui -lm }' – tarik 2012-04-11 09:25:12

相关问题