2012-06-06 102 views
0

我的makefile中的一條規則對-lmysqlclient具有依賴性。在我的Ubuntu 10.04 32位盒子上,libmysqlclient.so文件位於/ usr/lib中。在另一個CentOS 6.2 64位的機器上,這些文件位於/ usr/lib64/mysql中。有沒有更好的/正確的方法來使我的生成文件比將下面的「hack」添加到生成文件更普遍?通用makefile包含/ usr/lib子目錄

ifeq ($(shell uname -m), x86_64) 
vpath %.so /usr/lib64/mysql 
endif 
+0

爲什麼'vpath%.so/usr/lib usr/lib64/mysql'沒有條件? – Beta

+0

@貝塔:是的,這顯然可行,謝謝! – DeLorean88

回答

0

也許你可以創建一個文件config-x86_64.mkvpath線,並在你的Makefile這樣做

-include config-$(shell uname -m).mk 

-include將避免一個錯誤,如果該文件不存在。

在任何情況下,每個系統都應該正確配置,以便系統庫由鏈接器自動提取,而不需要任何手動黑客。

+0

感謝您的建議。關於正確的系統配置,我認爲我沒有做任何異乎尋常的事情:通過簡單的'yum install mysql-devel'安裝全新的CentOS安裝(最小)和庫, – DeLorean88