對於我正在編寫的C項目,我需要使用GMP庫,我已將它解壓到我的主目錄(使用OpenBSD OS和bash)。我通過git與其他人一起工作,所以我不能將標題更改爲相關文件,此時GCC正在給出無法找到它的錯誤。我沒有root privelidges,所以我不能只安裝它。如何讓C識別沒有正確安裝的庫文件?
如何讓GCC在我的home文件夾中找到GMP庫而不是通常的地方?
對於我正在編寫的C項目,我需要使用GMP庫,我已將它解壓到我的主目錄(使用OpenBSD OS和bash)。我通過git與其他人一起工作,所以我不能將標題更改爲相關文件,此時GCC正在給出無法找到它的錯誤。我沒有root privelidges,所以我不能只安裝它。如何讓C識別沒有正確安裝的庫文件?
如何讓GCC在我的home文件夾中找到GMP庫而不是通常的地方?
編譯時使用的參數-I
告訴GCC到哪裏尋找頭文件和-L
告訴GCC到哪裏尋找libraires。
例如:
$ gcc -I/location/of/library/headers -c foo.c -o foo.o
$ gcc -L/location/of/library/libs foo.o -o foo -llibrary
解決方案是使用您設置的環境變量指向安裝GMP庫的位置。
例如這個bash腳本:
#!/bin/bash
export GMP_PATH=/home/mylibs/gmp
,並在你的makefile(或腳本),你可以使用類似:
gcc my_file1.c my_file2.c my_file3.c -I${GMP_PATH}/include
我不知道GMP庫的目錄結構,但您應該能夠根據指向GMP目錄的GMP_PATH變量獲取包含路徑。
所以有可能有類似${GMP_PATH}/include
,${GMP_PATH}/src/include
等