VC++ error LNK2005: "int MirGameCom::API_SERVER_PORT" (?API_SERVER_PORT@MirGameCom@@3HA) 已经在 WDUpload.obj 中定义
VC++ error LNK2005: "int MirGameCom::API_SERVER_PORT" (?API_SERVER_PORT@MirGameCom@@3HA) 已经在 WDU ...
在VC++中,错误 LNK2005 表示你在多个源文件中重复定义了同一个变量。在你的情况下, `int MirGameCom::API_SERVER_PORT` 这个变量已经在 `WDUpload.obj` 中定义过了。
要解决这个问题,你可以采取以下措施:
1. **确保变量只定义一次**:
在你的头文件中(例如 `MirGameCom.h` ),应该只声明这个变量,而不是定义它。你可以使用 `extern` 关键字来声明它:
- // MirGameCom.h
- extern int API_SERVER_PORT; // 只声明,不定义
复制代码
然后在某个源文件中(例如 `MirGameCom.cpp` )中进行定义:
- // MirGameCom.cpp
- int MirGameCom::API_SERVER_PORT = 12345; // 这里进行定义
复制代码
2. **检查所有源文件**:
确保在所有源文件中没有重复定义同一个变量。如果在其他源文件中也有类似的定义,删除或修改它们。
3. **使用命名空间**:
如果你在不同的命名空间中定义了同名变量,确保它们的作用域不会冲突。
通过以上方法,你应该能够解决 LNK2005 错误。
|