2014-02-24 48 views
0

我已經用C語言編寫的一個項目,我移植到舊系統CentOS release 5.10 (Final)使用cmake檢測正在對

對於我們的新系統Fedora 20我們使用apr-1.5.0,這些都不行編譯什麼系統方案在CentSO上,因爲我在那裏遇到鏈接問題。

tools/apr/libs/libapr-1.so: undefined reference to `[email protected]_2.14' 
tools/apr/libs/libapr-1.so: undefined reference to `[email protected]_2.9' 
tools/apr/libs/libapr-1.so: undefined reference to `[email protected]_2.9' 
tools/apr/libs/libapr-1.so: undefined reference to `[email protected]_2.10' 

於是我下載了舊的APR-1.2.7庫和頭,我編譯和鏈接與他們和一切工作正常。

但是,我使用cmake,每次從不同的操作系統切換時都必須調整路徑。

爲CentOS我不得不使用這樣的:

link_directories(${PROJECT_SOURCE_DIR}/tools/apr-1_2_7/libs) 

而對於一個新的系統,我要修改並使用此:

link_directories(${PROJECT_SOURCE_DIR}/tools/apr/libs) 

我只是想知道是否有反正cmake的可檢測系統,然後使用適當的庫。

if(CSENTOS_5_10) 
link_directories(${PROJECT_SOURCE_DIR}/tools/apr-1_2_/libs) 
else 
link_directories(${PROJECT_SOURCE_DIR}/tools/apr/libs) 
endif 

我正在考慮創建一個工具鏈文件,但我認爲這只是一件小事情的矯枉過正。

我不能使用使用yum安裝的apr,因爲不能保證庫和頭文件已經安裝。

非常感謝您的任何建議。

+0

一個解決方案可能是檢查'/ etc/* - release'文件。但是,那裏沒有真正的標準...... – NoWiS

回答