這不應該是一個困難的任務,但是,我不能解決這個問題幾個小時,所以我在這裏發佈了這個問題。如何在bash中爲Mac添加默認的Include和Library路徑?
的嘗試鏈接如下:
How to include needed C library using gcc?
How to add a default include path for gcc in linux?
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Environment-Variables.html#Environment-Variables
how gcc automatically know to include glib library
How to compile gcc with shared library?
http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html
我如何可以添加包括和lib路徑cfitsio庫gcc編譯器?
嘗試:
我在路徑〜/應用下載和安裝cfitsio。 (NOT /應用程序btw)。
然後安裝的命令是:
sudo ./configure
sudo make
sudo make install
現在,讓我們說我有一個程序example.c。
編譯:gcc -Wall -O3 example.c -lm -lcfitsio
不起作用。
然而,
gcc -Wall -O3 -o example example.c -I /Users/poudel/Applications/cfitsio/include -L /Users/poudel/Applications/cfitsio/lib -lm -lcfitsio
作品
現在我不想用標誌-I和-L所有的時間。我該怎麼做?
我更新了我的〜/ .bash_profile中有下面幾行:
export PATH=$PATH:~/Applications/cfitsio/bin
export LD_LIBRARY_PATH="~/Applications/cfitsio:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="~/Applications/cfitsio/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="~/Applications/cfitsio/lib/pkgconfig:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="~/Applications/cfitsio/zlib:$LD_LIBRARY_PATH"
要檢查的路徑包括我用運行source ~/.bash_profile
後:
echo $LD_LIBRARY_PATH
這正確顯示添加路徑。
我添加的路徑,但是,這並不工作:
gcc -Wall -O3 -o example example.c -lm -lcfitsio
,如果我給-I和-L標誌與它們的路徑它的工作原理。
我們可以做的事情,上述命令工作,而不使用-I和-L命令所有的時間?
注意:
我甚至嘗試從/ usr/local目錄安裝cfitsio。
我是從/ usr/local/cfitsio安裝的,但我不得不在這些新位置上使用-I和-L命令。
我真的很沮喪。
幫助和建議將不勝感激!謝謝。
更新:
我試圖用dyld的替代和補充中的.bash_profile這些行:
export PATH="$(pwd):~/Applications/cfitsio/bin:$PATH"
export PATH="$(pwd):~/Applications/cfitsio/include:$PATH" # fitsio.h is here
export DYLD_LIBRARY_PATH="~/Applications/cfitsio/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH="~/Applications/cfitsio/zlib:$DYLD_LIBRARY_PATH"
但是,如果我運行這些命令他們返回空輸出,我無法設置dyld的庫路徑這些路徑。
echo $LD_LIBRARY_PATH
echo $DYLD_LIBRARY_PATH
您是否使用XCode或其他版本的'gcc'? macOS上的環境變量是DYLD_LIBRARY_PATH。你可以在'/ usr/local/lib'中安裝指向已安裝庫的sum鏈接嗎?你可以在'/ usr/local/include'中爲頭文件做類似的事情,除非它可能是你安裝cfitsio的目錄的鏈接。 –
您可以使用make或cmake或pkg-config [如果您使用brew安裝cfitsio](https://heasarc.gsfc.nasa.gov/fitsio/fitsio_macosx.html)。您需要了解您的項目需要進行配置才能編譯。因此,我一直需要-I和-L和-l。不要使用環境變量來做到這一點。 – Stargateur
@Stargateur,我沒有使用自制軟件安裝cfitsio,只是使用官方源碼包中的make install。 –