我正在開發一個多平臺C
程序。由於每臺機器上都有不同的編譯器,庫位置等,makefile變得相當複雜。我認爲Autoconf/Automake
是一個很好的解決方案,儘管我以前使用這些工具的經驗很少。我是否真的需要指定庫位置與automake鏈接?
我的Makefile.am
的行爲LIBS=-lX11
,但鏈接失敗,並顯示錯誤"/usr/bin/ld: cannot find -lX11"
。我可以通過將"-L/usr/X11R6/lib/"
添加到LIBS
的定義中來解決此問題,但是我應該確實需要這麼做嗎?當我運行./configure
,它說:
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
所以它看起來像Automake的應該知道在哪裏可以找到它。有沒有辦法可以在Makefile.am
中引用它的位置,而不必對其進行硬編碼,因爲X11 libs
將位於每臺機器上的不同位置?
感謝提示。我在那裏有AC_CHECK_LIB(X11,XOpenDisplay),但是當它不能編譯時,我試圖通過changings LIBS來修復它。事實證明,我忽略了./configure說它無法在X11庫中找到XOpenDisplay函數。這可能是真正的問題。 – Tom