2015-06-19 76 views
2

我想在Mac OS X上安裝第三方C庫(http://cgm.cs.mcgill.ca/~avis/C/lrs.html)。但是,二進制文件似乎無法在Mac OS X上安裝( 10.9.5)。該庫適用於Unix/Linux平臺。在Mac OS X上安裝第三方C庫

下面是我嘗試安裝make文件時遇到的一些錯誤示例。首先,運行make all開箱時(出於某種原因,運行make all64什麼都不做),這裏的錯誤:

ld: library not found for -lgmp 

我通過安裝的MacPorts的GMP庫(https://gmplib.org/)在/opt/local。但是,圖書館似乎沒有被發現:

cc 2nash-GMP.o -L. -llrsgmp -L/opt/local/include -lgmp -o 2nash 
ld: library not found for -lgmp 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [2nash] Error 1 
rm 2nash-GMP.o 

我怎樣才能解決所有這一切,並在Mac上安裝?

我會提到,我打算從我編寫的一些(Matlab)代碼的函數中很多次地從這個C庫調用一個函數。我更喜歡任何可能的解決方案來實現這一點。

更新#1: 因爲我已經做了以下內容:

  • 在生成文件,改變LIBDIR/usr/lib/opt/local/lib
  • 在生成文件,改變INCLUDEDIR/usr/include/opt/local/include
  • 複製gmp.h文件從/opt/local/include/usr/include
  • 在生成文件,改變RANLIB ?= /bin/trueRANLIB ?= /usr/bin/true

現在,當我運行make all,我得到以下信息:

make: Nothing to be done for `all'. 

應採取哪些其他措施?

+0

剛一說明:我希望你把(編譯時間).h文件在/ opt /本地/ include(並使用-I編譯開關)和(鏈接時間).a/.so文件放在/ opt/local/lib中(使用-L鏈接開關)。我討厭在/任何/地方/包含圖書館...... – paulsm4

回答

1

我想你,而是想是這樣的:

cc 2nash-GMP.o -L. -llrsgmp -I/opt/local/include -L/opt/local/lib -lgmp -o 2nash 

-I選項指定頭包含的路徑。 -L選項指定要包含的庫文件的路徑。

1

變化在生成文件存放庫的安裝位置,例如可變LIBDIR

LIBDIR = /opt/local/lib