Ubuntu内置了libiconv
标准c库,LDFLAGS
不需要它。 OS X没有内置,需要设置标志。
我目前的做法是在我的Makefile中使用ifeq
在OS X上有条件地设置LDFLAG += -liconv
。
我想知道是否有更好的方法?我受到Web开发的特征检测思维的影响很大,希望我可以使用类似的方法来检测当前系统是否需要该标志。
答案 0 :(得分:0)
对于手动编写的makefile,单独设置LDFLAGS
和朋友的内容是可以接受的方式。如果只需要几个功能,这可能会更简单。
如果您想要一般性地检测该功能,一条路线就是使用makefile生成器,如 CMake 或 Automake 。
最后一个选项是手动执行Automake执行的运行时检查。这是一个你编译的示例文件,链接其中一个选项,看看它是否有效。如果不尝试下一个等等。这样您就可以测试每个功能所需的标志。当项目为./configure
时,Automake会执行此操作,但您可以在每次运行make
时或在您的构建设置有效时执行此操作。