提问人:user260854 提问时间:9/1/2021 最后编辑:user260854 更新时间:9/1/2021 访问量:196
错误:C++ 中未解析的外部符号错误
Error: Unresolved external symbol error in C++
问:
编译问题是由全局变量 [ ] 引起的,这里是最小的例子All_Sockets
main.cpp
#include <winsock2.h>
#include <windows.h>
#include <vector>
#include "global.h"
int main() {
std::vector<SOCKET> All_Sockets(10, INVALID_SOCKET); // definition of global var
getchar();
return 1;
}
全球.h
#pragma once
#include <vector>
#include <Windows.h>
extern std::vector<SOCKET> All_Sockets; // declaration of global variable
文件1.cpp
#include "global.h"
#include <windows.h>
void ftn1(){
int i = 2;
SOCKET Client_socket = All_Sockets[i]; // usage of global var
}
我正在Visual Studio中构建此项目,并出现以下链接错误
1>file1.obj : error LNK2001: unresolved external symbol "class std::vector<unsigned int,class std::allocator<unsigned int> > All_Sockets"
答:
2赞
secuman
9/1/2021
#1
必须定义为全局变量。目前,被定义为局部变量,所以必须定义上面的函数。All_Sockets
All_Sockets
All_Sockets
main
std::vector<SOCKET> All_Sockets(10, INVALID_SOCKET); // definition of global var
int main() {
getchar();
return 1;
}
评论
0赞
user260854
9/1/2021
哦,我以为只有宣言应该是全球性的。感谢您的回复:)
评论