C++11 GNU和ICC编译器之间的区别:命令行警告#10370:option'-std=c++;11';对于C编译无效 我很难用英特尔编译器编译一段C++代码,而GCC编译器则没有错误。

C++11 GNU和ICC编译器之间的区别:命令行警告#10370:option'-std=c++;11';对于C编译无效 我很难用英特尔编译器编译一段C++代码,而GCC编译器则没有错误。,c++11,gcc,intel,C++11,Gcc,Intel,考虑以下主要功能: Main.cpp #include <iostream> #include <stdlib.h> #include <vector> #include <stdio.h> #include "my_func_data.h" int main() { my_func_data dataFunction; dataFunction.vec.push_back(1); dataFunction.vec.p

考虑以下主要功能:

Main.cpp

#include <iostream>
#include <stdlib.h>
#include <vector>
#include <stdio.h>
#include "my_func_data.h"
int main()
{   
    my_func_data dataFunction;
    dataFunction.vec.push_back(1);
    dataFunction.vec.push_back(2);
    dataFunction.vec.push_back(3);
    dataFunction.vec.push_back(4);

    for(int i=0;i<4;i++){
        printf("%f\n",dataFunction.vec[i]);
    }

 return 0;
 }
下一步使用英特尔编译器

module load compiler/intel-15.0
icc -std=c++11 Main.cpp  my_func_data.h -o main
icc: command line warning #10370: option '-std=c++11' is not valid for C compilations
my_func_data.h(6): catastrophic error: cannot open source file "vector"
  #include <vector>
                   ^
模块加载编译器/intel-15.0
icc-std=c++11 Main.cpp my_func_data.h-o Main
icc:命令行警告#10370:选项'-std=c++11'对c编译无效
my_func_data.h(6):灾难性错误:无法打开源文件“vector”
#包括
^
什么可以阻止ICC编译器编译代码? 此外,我是否应该将结构my_func_数据嵌入到它编译并正确执行的主函数中

提前感谢您的任何见解

问题:

  • -std=c++11
    不是有效的编译器选项。看
  • 将C文件处理为C源文件,而不是C++源文件。
  • 您不需要在命令行中使用
    my_func_data.h
    。只需使用:

    icc Main.cpp -o main
    

  • icc
    是C编译器。C++编译器是代码> ICPC
    这类似于
    gcc
    vs.
    g++

    你看过了吗?谢谢你的回答!
    -std=c++11
    (我理解这是这里唯一的选项)本身不是问题。就在我将my_func_数据编译为独立的头文件时,编译器抛出一条警告,指示它正在编译c编写的代码,然后抛出一个向量错误。我误解你的评论了吗?请让我知道。
    module load compiler/intel-15.0
    icc -std=c++11 Main.cpp  my_func_data.h -o main
    icc: command line warning #10370: option '-std=c++11' is not valid for C compilations
    my_func_data.h(6): catastrophic error: cannot open source file "vector"
      #include <vector>
                       ^
    
    icc Main.cpp -o main