此问题已在此处有答案:
What is an undefined reference/unresolved external symbol error and how do I fix it?(39答案)
5天前关闭。
所以我有一个问题,当我试图在vscode中编译一个c++文件时。我会在终端上执行clang Watermelon.cpp。下面的代码可以很好地实现这一点
#include <iostream>
using namespace std;
int main() {
int x;
return 0;
}
但是,一旦我添加了cin和cout,它就会抛出一个错误。
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
return 0;
}
Error: Undefined symbols for architecture arm64:
"std::__1::basic_istream<char, std::__1::char_traits<char> >::operator>>(int&)", referenced from:
_main in Watermelon-42c4ad.o
"std::__1::cin", referenced from:
_main in Watermelon-42c4`your text`ad.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
使用VScodes调试器运行它是可行的,但我想弄清楚为什么当我从学校的Windows mingGW切换到MacBook上的clang时会发生这种情况。
1条答案
按热度按时间puruo6ea1#
这将调用C编译器前端。它会正确地识别出它是C代码并编译它,但它仍然会链接到C标准库而不是C标准库,这就是为什么它找不到引用函数的定义。
你应该使用C++编译器前端: