我正在编写我的第一个项目,该项目将使用 autoconf 并在我进行时自学。在大多数情况下,事情进展得非常顺利。我还有最后一个重大障碍。我在定位可能因系统不同而命名不同的库和头文件时遇到问题。
例如,我需要使用 Mozilla 的 SpiderMonkey 进行编译。从源代码编译时,SpiderMonkey 变为 libjs.so。然而,在我的 Linux 变体中,SpiderMonkey 安装为 libmozjs.so。它是同一个库,只是名称不同,因此链接器标志不同。
是否有适当的方法来检测库的名称?我是否只是将其默认为“js”并提供配置选项来覆盖它?
我对头文件也有同样的情况。SpiderMonkey 的头文件安装在我的操作系统上的 /usr/include/mozjs/ 中。我确信在其他系统上,它将是 /usr/include/js/ 或者甚至可能只是 /usr/include/。如何找到正确的头文件位置?我犹豫要不要做一个普通的“查找”,因为它会很慢,而且我可能会找到错误的文件副本(例如,在用户的主目录而不是 /usr/include/ 中查找文件。)