我正在用autoconf,automake和libtool构建一个程序.我的工作要求我静态链接(大多数)库.这在过去并不是一个问题,因为我可以静态地将所有内容联系起来
-all-static.现在这是一个问题因为我必须使用一个只是动态的库; 它是由第三方给我们的,我们没有来源.
当然,-all-static现在导致构建失败.是否有可能告诉libtool静态链接所有内容,除了这个库?是否有可能让libtool进行静态和动态链接的任何组合,还是全部或全部?
到目前为止,我已经尝试创建一个便利库LDFLAGS = -static,这取决于我想要静态链接的库.但libtool并没有像我希望的那样连接静态库.取决于便利库的程序仍然动态地链接所有内容.
我也尝试过--disable-shared,但这并没有影响构建.
这些问题类似,但没有真正回答我的问题:
(我不想从我的系统中删除共享库,并且指定所有内容的完整路径并不比手动链接更好,但也许这是唯一的方法.)
我正在阅读Tmux源代码,看看它是如何工作的.它看到它imsg用于我的IPC,这是我从未听说过的.我一直在努力寻找更多信息,但事实证明imsg这有点难以谷歌,而且我为iMessage获得了很多结果.
我在imsg这里找到了一些文档,所以它似乎是一个OpenBSD库.我开始寻找Linux实现,但我找不到任何东西.看来Tmux的作者编写了自己的兼容层.这让我感到惊讶,因为imsg它看起来真的很有用.Linux是否有类似的C API,我只是不知道?
autoconf手册建议使用AS_IF而不是if,但它没有提到m4_if.应该AS_IF也优于m4_if?
本手册的"内置限制"部分说明了AS_IF它的可移植性,但AC_REQUIRE描述说用它来扩展所需的宏.
我应该经常使用AS_IF吗?答案似乎是肯定的,但我再次看到if并m4_if在其他宏中使用.什么时候可以不使用AS_IF?