我应该从源代码编译一个库吗

Should I compile a library from source?

本文关键字:一个 源代码 编译 我应该      更新时间:2023-10-16

我正在开发一个应用程序,该应用程序将在定制的、基于debian的linux系统上运行。我们有一个工具链,这样我们就可以为目标系统交叉编译应用程序,这样我们不必依赖于进行编译的主机操作系统(而不是目标操作系统)。

然而,我不确定我们是否应该从源代码交叉编译第三方库,或者我们是否应该只使用预先封装的库和头文件。例如,基于此页面,libSDL1.2似乎与发行版无关(http://www.libsdl.org/download-1.2.php)所以我们似乎不需要从源代码编译它。。但其他一些库对BSD、Ubuntu、Redhat等有不同的风格,这让我认为我们需要用我们的工具链来编译这些库。

我什么时候应该从源代码编译库?有什么需要考虑的?

从源代码编译/构建第三方库总是一件好事。尽管您提到的一些库,如OpenCVlibSDL,可以在不编译的情况下直接使用,但您仍然可以根据自己的首选选项重新构建它们,而不是使用它们的默认选项,从而受益匪浅。例如,通过重新构建OpenCV,您可以添加适合您的PC的CUDA功能来加快速度。

要编译/构建第三方,可以使用cmake。对于大多数第三方库,它们包含一个名为CMakeLists.txt的文件,供您执行此操作。