exa*_*exa 5 autoconf portability autotools package c++11
因此,C++ 11已经存在了一段时间,并且鉴于已经有大多数平台上都支持它的编译器,在一些真正的软件中使用它会很好 - 例如可以像便携式一样打包的软件. - 可能的包,最好提供./configure等.
因为Clang和GCC当前都需要-std = c ++ 11标志来编译c ++ 11源代码,并且两者有时都需要特定的标志才能正常工作(例如,参见如何在OSX Lion上使用clang 3.2编译C++ 11?或C++ 11 Thread无法正常工作),我担心由于编译器调用错误,该软件包无法在已支持c ++ 11的某些平台上运行.
问:有没有一些标准如何正确和可移植地编译c ++ 11?例如autotools/autoconf检查或一些描述所有可能需要的选项的编译器/平台指令列表?或者情况是否来自c ++ 11标准实现当前被标记为"实验性"的事实,并且标准最终将稳定并成为默认选择,不需要使用额外的编译器标志?
谢谢
-exa
我正在使用 CMake 生成 C++11 项目的 Makefile。我需要做的 CMakeLists.txt 中的唯一更改是添加以下内容:
ADD_DEFINITIONS("-std=gnu++11")
ADD_DEFINITIONS("-D_GLIBCXX_USE_C99_STDINT_TR1")
ADD_DEFINITIONS("-D_GLIBCXX_HAS_GTHREADS")
Run Code Online (Sandbox Code Playgroud)
然而,当我使用Qt时,我用新的gcc版本4.8重新编译QtSDK,并得到一个使用4.8版本中的gcc的完整mingw系统。
进行这些更改后,该项目可以在 Windows XP、Windows 7 和 32 位和 64 位 Linux 上编译和运行。我还没有在 OSX 中测试过。
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |