c++ Visual Studio代码找不到对函数的引用[重复]

izj3ouym  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(130)
    • 此问题在此处已有答案**:

(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).
lmyy7pcs

lmyy7pcs1#

如果将Other.hOther.cpp构建为一个项目,则需要配置链接器以将Other.lib添加到测试项目中。
对于一个简单的场景,您可以在一个项目中拥有所有3个文件,它们应该构建得很好。

3pvhb19x

3pvhb19x2#

根据您的内部版本信息:

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

您可以看到Other.cpp不在您的项目中,因此您可能需要将其添加到您的项目中。
由于您使用的是VS代码,因此可以在terminal中编写一个简单的命令来构建代码:

C:\MinGW\bin\g++.exe -g C:\Users\johan\cu-workspace\TEst\Test.cpp C:\Users\johan\cu-workspace\TEst\Other.cpp -o C:\Users\johan\cu-workspace\TEst\Test.exe

相关问题