2009-08-14 40 views
0

我的主目錄通過網絡文件系統在幾臺Linux計算機之間共享。 我想從我的主目錄下的源代碼安裝一些C C++庫,並希望它們可以在所有Linux計算機下使用。通過網絡文件系統在HOME共享下安裝C C++庫

我是否必須在不同計算機的家中不同目錄下安裝不同版本的庫?

假設我有一個調用這些庫的C++程序,我該如何爲Makefile中的不同計算機指定不同的包含和鏈接文件和目錄?是根據計算機的主機名來確定目錄嗎?

是否有可能的。一個不同的版本和.so文件和libary不同的Linux計算機的頭文件結合起來,使得包括和鏈接文件和libary的目錄是對所有計算機和相同我不必爲C C++程序的Makefile中的不同計算機指定不同的目錄?

感謝和問候!

回答

0

這很容易和常見。

由C C++我假設你的意思是你有用C編譯器編譯的庫,和用C++編譯器編譯的庫。

如果您使用的編譯器版本相同,那麼每個版本都不需要不同的庫。如果它們不同,可能仍然可以使用相同的C庫,但是C++會變得更加成問題。

如果這些文件位於您的主目錄中,那麼Makefile中最簡單的做法是使所有相對於$ HOME的路徑。這個環境變量應該在每個系統上正確設置。

如果您需要在不同的機器上引用不同的庫,最簡單的方法是將它們放在與主機名同名的目錄中。事情是這樣的:

CXXFLAGS=-I$(HOME)/app/$(HOST)/include 

你可能只是一對夫婦的機器做一些事情通過提取gcc版本號,並使用更多的幻想,但它可能是矯枉過正。

+0

謝謝! 兩臺機器的gcc版本不同。對於第一個,它是gcc/g ++ 3.4.6 20060404(Red Hat 3.4.6-10);對於第二個,它是gcc/g ++(Ubuntu 4.3.2-1ubuntu12)4.3.2。 第一臺機器是CentOS 4.7(Final)和x86_64,第二臺是Ubuntu 8.10和x86_64。 如果我不得不在不同的目錄中安裝庫,如何在Makefile中爲不同的機器指定它們? 謝謝 – Tim 2009-08-14 12:51:58