我被要求在g++环境下用cMake编译器编译C源代码。
我尝试了Stack溢出的解决方案之一:
在运行cmake之前设置CC、CXX,如下所示。
出口CC=/usr/bin/g++出口CXX=/usr/bin/g++
但在运行cmake时,我会遇到以下错误
"cmake -DPLATFORM=x64 ../"
-- The C compiler identification is unknown
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/g
根据我的记忆,下面这段代码应该可以在C++上很好地编译,但不能在C中编译,唯一的问题是如何测试它?它在g++上编译得很好,在gcc上也是如此。我假设g++是C++编译器,而gcc是C编译器。我已经在Windows下用mingw尝试过了。我说的对吗?如果不是,那么如何使用C编译器编译它。
int main() {
const int i = 1;
const int j = 2;
const int k = 3;
int array[i + j + k];
return 0;
}
我有一个在g++ 4.8.1和clang >= 3.3下以c++11模式正确编译和运行的项目。然而,当我切换到实验性的-std=c++1y模式时,clang3.3(而不是g++)阻塞了通过Boost.Test间接包含的<cstdio>头(所以我自己很难更改它)。
// /usr/include/c++/4.8/cstdio
#include <stdio.h>
// Get rid of those macros defined in <stdio.h> in lieu of real functions.
// ...
#undef gets
//
我很难理解可供我使用的不同编译器。
我主要使用Xcode编写和编译,在Xcode的首选项中,有以下所有用于C++编译的选项:
C++语言方言:
C++98-std=c++98通过C++14-std=c++14
GNU++98-std=gnu++98通过GNU++14-std=gnu++14
C++标准库:
libstdc++ (GNU C++标准库)
libc++ (具有C++11支持的LLVM C++标准库)
1. Can someone explain what exactly all of that ^ is?
2. I understand that