我正在为C++项目寻找一个易于维护的便携式构建系统.主要平台应包括Windows(Visual Studio 8+)和Linux(gcc); Cygwin可能是一个优势.我们正在考虑两种主要的可能性:CMake和Boost.Jam.SCons也可以选择,但我还没有调查过.CMake和Boost.Jam似乎具有以下特征:
CMake的:
Boost.Jam:
什么是其他可能性以及经验之后的真正优势?什么构建系统可以在途中创建解决方案?
我想知道,为什么在没有包含胶水代码的情况下让程序在许多操作系统(如Windows和Linux)中运行太难了.它们都共享相同的架构(x86),所以我认为它应该很简单.此外,C是标准化的,那么为什么这些操作系统的实现不同?为什么难以遵循标准并为所有操作系统实现通用库?
我用C编程了将近两年,目前我使用glib来实现可移植性.
我不是在寻找这个问题的解决方案,我已经为此目的使用了glib.但是我想知道为什么它是必要的,为什么制造一个没有差异的C库是很困难的.
[加]
例如,当我在C/Glib中编写程序时,我使用gchar/gint等类型确实是C基元类型,在wikipedia中关于glib,它说:
"特征
在基本层面上,GLib提供了类型定义,取代了C原型char,int,float等,以提高可移植性"
为什么C原始类型不可移植和整个语言?
感谢所有的答案.
关于开源项目的所有大惊小怪,为什么还没有一个强大的标准,使你能够制作可移植的代码(我的意思是C/C++没有Java或C#)每个人都有点自己做汤.
甚至还有一些第三方文库Apache Portable Runtime.