gpt4 book ai didi

C++ 头文件 "symbol(s) not found"类错误

转载 作者:行者123 更新时间:2023-11-28 02:35:06 25 4
gpt4 key购买 nike

学习 C++,我环顾四周,每次我似乎都得到一个不同的答案但行不通,也许我只是遗漏了一些东西。

我收到以下错误:

"/Applications/CLion EAP.app/Contents/bin/cmake/bin/cmake" --build /Users/*/Library/Caches/clion10/cmake/generated/d7f7e267/d7f7e267/Debug --target hench_modules -- -j 8
Scanning dependencies of target hench_modules
[100%] Building CXX object CMakeFiles/hench_modules.dir/main.cpp.o
Linking CXX executable hench_modules
Undefined symbols for architecture x86_64:
"Console::log(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [hench_modules] Error 1
make[2]: *** [CMakeFiles/hench_modules.dir/all] Error 2
make[1]: *** [CMakeFiles/hench_modules.dir/rule] Error 2
make: *** [hench_modules] Error 2

我正在使用 JetBrains IDE“CLion”

下面是我的代码:

主要.cpp:

//in main.cpp
#include "Console/console.h"

int main() {
Console a; // no longer produces an error, because MyClass is defined
a.log("Hello World!");
}

控制台.h:

#include <string>
class Console {
public:
void log(std::string str);
};

控制台.cpp:

#include "console.h"
#include <iostream>
using namespace std;

void Console::log(string str){
cout << str << endl;
};

感谢任何帮助,错误仅在实际调用 a.log(); 时出现,在此之前没有任何问题。如您所见,代码非常简单,只需遵循通用指南即可。

最佳答案

我的问题似乎与 CMake 有关,而且非常简单/愚蠢。

CMakeLists.txt 文件的更改:

set(SOURCE_FILES
Console/console.cpp
Console/console.h
main.cpp)

所以原因正如 WhozCraig 指出的那样,文件链接到代码并由代码找到,但实际上并未构建。

关于C++ 头文件 "symbol(s) not found"类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com