【发布时间】:2020-06-11 16:04:31
【问题描述】:
这个问题对我来说已经很久了。我不经常使用 c++,而且似乎大多数 cpp 库都以 zip 文件或包含源代码的 tar 球的形式提供。
所以,问题是:
为什么那些项目不提供预编译的二进制文件?
我目前对“autoconf,make,make install,...”过程的理解是确保一切正确,然后将源代码编译成可执行文件或一些库。但是如果我们最终得到相同的东西,为什么我们每次都要编译它呢?我不是说要为编译好的库维护一个单独的项目,但是在调试和测试过程中,这些文件应该是自动生成的,为什么不把它们放到发布文件中呢?
例如:FTGL库的源码自带Visual Studio解决方案文件(.sln),如果他们用这个来开发和调试,为什么不把编译好的二进制文件放到他们的发布文件中呢?
【问题讨论】:
-
因为不同的操作系统和发行版需要不同的二进制文件。
-
嗯,你能说得更具体点吗?哪个平台、什么架构、ABI、优化级别的二进制文件?矢量指令是打开还是关闭?
-
另外,不同的编译器使用不同的库格式、目标文件格式、调试信息格式等
-
这些天我更喜欢不下载二进制文件,而是让代码支持使用 CMake 生成我的 Visual Studio(或其他 IDE)项目文件。