我正在开发一个多平台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