C++ 为什么赢了';这个代码不能运行吗?我很困惑 //main.cpp #包括 #包括“add.h” int main(){ std::cout

C++ 为什么赢了';这个代码不能运行吗?我很困惑 //main.cpp #包括 #包括“add.h” int main(){ std::cout,c++,C++,现在add.cpp文件没有正确链接 您需要做的是: 创建一个add.o文件 // main.cpp #include <iostream> #include "add.h" int main(){ std::cout << "Hello World\n"; std::cout << add(3,4) << std::endl; return 0; } // add.h #ifndef add_h #define add_h int

现在add.cpp文件没有正确链接

您需要做的是:

  • 创建一个add.o文件

    // main.cpp
    #include <iostream>
    #include "add.h"
    
    int main(){
      std::cout << "Hello World\n";
      std::cout << add(3,4) << std::endl;
      return 0;
    }
    
    // add.h
    #ifndef add_h
    #define add_h
    
    int add(int x, int y);
    
    #endif /* add_h */
    
    // add.cpp
    #include "add.h"
    
    int add(int x, int y){
      return x + y;
    }
    
  • 链接要编译的.o文件

    g++ -c add.cpp -o add.o
    

  • g++-std=c++11 main.cpp add.cpp-o ma
    您还必须编译add.cpp欢迎使用堆栈溢出。请花点时间阅读并参考您可以在此处询问的内容和方式。或者您可以通过g++-std=c++11 main.cpp add.cpp-o main添加add.cpp。谢谢!还有-c标志的意思是什么?@RonB这意味着r应该只创建一个对象文件,而不是试图创建一个可执行文件。@JamesMaa我会在答案中弹出该注释。对于这个问题的大多数未来提问者来说,它将比现有答案更有用。
    g++ -std=c++11 add.o main.cpp -o main