我已經用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,因爲不能保證庫和頭文件已經安裝。
非常感謝您的任何建議。
一個解決方案可能是檢查'/ etc/* - release'文件。但是,那裏沒有真正的標準...... – NoWiS