- 此问题在此处已有答案**:
(39个答案)
14小时前关门了。
我正在尝试将Visual Studio用于特定项目,但无法正确链接文件。在另一个cpp文件中包含具有已定义函数的头文件时,我收到错误undefined reference to testFunc() collect2.exe: error: ld returned 1 exit status
问题是,这段完全相同的代码在Eclipse中可以完美地工作。有人能告诉我哪里做错了吗?
Test.cpp
#include "Other.h"
int main(){
testFunc();
return 0;
}
Other.h
#pragma once
void testFunc();
Other.cpp
#include "Other.h"
#include <iostream>
using namespace std;
void testFunc(){
cout << "HelloWorld";
}
构建时,会发生以下情况:
Starting build...
C:\MinGW\bin\g++.exe -fdiagnostics-color=always -g C:\Users\johan\cu-workspace\TEst\Test.cpp -o C:\Users\johan\cu-workspace\TEst\Test.exe
C:\Users\johan\AppData\Local\Temp\cck3aAZo.o: In function `main':
C:/Users/johan/cu-workspace/TEst/Test.cpp:5: undefined reference to `testFunc()'
collect2.exe: error: ld returned 1 exit status
Build finished with error(s).
2条答案
按热度按时间lmyy7pcs1#
如果将
Other.h
和Other.cpp
构建为一个项目,则需要配置链接器以将Other.lib添加到测试项目中。对于一个简单的场景,您可以在一个项目中拥有所有3个文件,它们应该构建得很好。
3pvhb19x2#
根据您的内部版本信息:
您可以看到
Other.cpp
不在您的项目中,因此您可能需要将其添加到您的项目中。由于您使用的是VS代码,因此可以在terminal中编写一个简单的命令来构建代码: