Geany-未定义引用 我尝试用GeNe./P>编译C++代码。
编译命令:g++-Wall-c“%f” 生成命令:g++-Wall-o“%e”“%f” main.cpp:Geany-未定义引用 我尝试用GeNe./P>编译C++代码。,c++,compiler-construction,reference,undefined,geany,C++,Compiler Construction,Reference,Undefined,Geany,编译命令:g++-Wall-c“%f” 生成命令:g++-Wall-o“%e”“%f” main.cpp: #include <iostream> #include "Person.hpp" int main() { Person p1(16); std::cout << p1.getAge(); return 0; } Person.cpp #include "Person.hpp" Person::Person(int a) {
#include <iostream>
#include "Person.hpp"
int main()
{
Person p1(16);
std::cout << p1.getAge();
return 0;
}
Person.cpp
#include "Person.hpp"
Person::Person(int a)
{
age = a;
}
void Person::setAge(int a)
{
age = a;
}
错误:
g++-Wall-o“main”main.cpp(在目录中:
/home/me/projects/Test)/tmp/ccxYmWkE.o:在函数main'中:
main.cpp:(.text+0x15):对
Person::Person(int)”的未定义引用
collect2:错误:ld返回1个退出状态编译失败
在Geany之前,我只使用Code::Blocks,一切都很好。如何修复它?很明显,您没有将
Person.cpp
添加到编译命令中。那么它就不能通过联动层
将-o Person.cpp
添加到g++-Wall-c“%e”“%f”
之后的构建选项中。
毕竟,compile命令应该如下所示:
g++ -Wall -o "main" "main.cpp" -o Person Person.cpp
您可以(也可能应该)配置Geany为GNU使用Makefile
;您的build命令显然是错误的,您需要链接多个对象文件。。。
g++ -Wall -o "main" "main.cpp" -o Person Person.cpp