官方C++/11 Makefile标准/替代品?

e.s*_*hen 2 c++ build-automation portability makefile c++11

我目前正在使用Visual Studio 2012,Eclipse,CodeBlocks和MinGW来编写C++ 11代码.

题:

我注意到GCC中的功能,(延迟,=与立即,= =,扩展/分配等),以及微软的nmake让我想知道官方的"makefile"标准是什么.

  1. 是否有使用C++ 11的makefile标准的更新?
  2. 我知道GNU makefile标准在哪里,(http://www.gnu.org/software/make/manual/make.html),但在哪里可以找到"The"makefile标准?
  3. 说实话,我更愿意用C++编写makefile,然后从shell运行它们作为脚本; 有没有办法将C++代码作为脚本运行?也许是Javascript?使用了哪些其他脚本语言来执行此操作?

背景:

困难,(*咳嗽),是我试图确保代码在每个环境中编译,以及尝试交叉编译到其他目标,(Linux/Ubuntu使用OpenGL API,Windows 7,8,使用DirectX,Android NDK).

我的核心问题之一是我使用的很多工具集并不真正"开放"支持跨平台的超棒.

Visual Studio 2012:没有*nix可运行的编译器.使用2012年11月C++ CTP编译器的错误版本支持C++ 11.

GCC 4.7.x/4.8x:仅限于MinGW32和MinGW64的粗略版本.

CMake:很难正确配置,但似乎创建特定于GNU,Microsoft等的makefile.有没有办法配置它来生成"标准"makefile?

AutoMake/AutoConf:似乎只生成GNU兼容的makefile

Joh*_*ing 7

制作系统没有C++标准.这纯粹是实现定义的东西.

对于跨平台工作(同时是跨操作系统和跨工具链),我发现最受欢迎的选择是CMake.我不喜欢CMake的语法或各种复杂性,我不喜欢使用它 - 但它确实有用,似乎每个人都使用它.您在一个项目上工作的CMake技能将转移到许多其他项目.

是的,你可以从CMake中获得"标准"的makefile.这是发电机的功能:

cmake -G "Unix Makefiles" ...
Run Code Online (Sandbox Code Playgroud)

将生成与*nix兼容的makefile make.