Mac上的VSCODE:Linker命令失败,出口代码失败
我使用Mac上的VSCODE是C ++的新手,我尝试使用示例程序进行测试。
在标题文件中,我声明了课程。
#ifndef STUDENT_H
#define STUDENT_H
#include <iostream>
using namespace std;
class Student{
public:
string name;
int rollno;
Student();
Student(string s, int id);
void printDetails();
};
#endif
实现在.cpp文件中完成。
#include <iostream>
#include "student.h"
using namespace std;
Student::Student(){}
Student::Student(string s, int id):name(s),rollno(id){}
void Student::printDetails(){
cout<< rollno << "-" << name<<endl;
}
最后,我添加了 main.cpp
。
#include <iostream>
#include "student.h"
using namespace std;
int main(){
Student students[8];
students[0] = Student("Tom", 1);
students[1] = Student("Jerry", 2);
for(int i = 0; i < 2; i++){
students[i].printDetails();
}
}
但是,当我遵循。编译器发布错误
Undefined symbols for architecture x86_64:
"Student::printDetails()", referenced from:
_main in Main-896002.o
"Student::Student(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int)", referenced from:
_main in Main-896002.o
"Student::Student()", referenced from:
_main in Main-896002.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
可以通过手动链接 main.cpp
与 student.cpp
来解决问题,
g++ Main.cpp student.cpp -o Main
但是,有一种更有效的方法作为手册当项目规模较大时,工作很麻烦?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论