Visual Studio C++ 2010 in-project link error
Visual Studio C++ 2010 in-project link error
我在VSC 2010中有一个多文件项目,但由于某些原因,它无法正确链接其中的一些项目。
例如,我有cparser.h and cparser.cpp。cparser.h只是一些函数声明:
#pragma once
#include <string>
void parseArg(int argc, char* argv[], GVar gv);
void parseCfg(string cfg, GVar gv)
cparser.cpp仅包含实现:
#include <cstdio>
#include <fstream>
#include <cstring>
#include <string>
#include "_GlobalVar.h" //defines GVar, not relevant
#include "CParser.h"
void parseArg(int argc, char* argv[], GVar &gv) {
/*not really relevant*/
}
和错误:
main.obj:错误lnk2019:未解决的外部符号" void __cdecl Parsearg(int,char * * const,gvar类)" (?parsearg @@ yaxhqapadvgar @@ z)在功能中引用_sdl_main
编辑:
还有一个其他问题:
template<class T>
void RDAMHandler<T>::clean() {
long i;
while(!avtick.empty())
avtick.pop();
for(i = v.size() - 1; i >= 0; i--) {
delete all[i];
all.pop_back();
v.pop_back();
}
}
和声明:
template<class T>
class RDAMHandler {
vector<T*> all;
priority_queue<long> avtick;
vector<bool> v;
public:
T &operator[](long x);
long insert(T &x);
void del(long x);
void clean();
};
我在这里看不到任何区别;有什么问题?
编辑编辑:和错误
main.obj:错误lnk2019:未解决的外部符号" public:void __ thiscall rdamhandler :: clean(void)"(?clean@?$ rdamhandler@usdl_surface @@@@@ qaexxz)在功能中引用 " void __cdecl清理(GVAR类)"(?清理@@ yaxvgvar @@@ z)
>
in cparser.cpp
我认为您必须使用语句
void CParser::parseArg(int argc, char* argv[], GVar &gv)
而不是
void parseArg(int argc, char* argv[], GVar &gv)
in CParser.cpp file
和 cparser.h
声明应更改为 void parseArg(int argc, char* argv[], GVar &gv);
和对于下一个错误
供参考,请仔细阅读1.使用类
的模板希望这对您有帮助。
它们是两个不同的过载 - 标题中的声明具有GVar gv
,而.cpp文件中的定义具有GVar &gv
。其中之一可能是错字。
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- C++运行时组件(通用 Windows)项目生成错误"LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'"
- Xerces Link error with Visual Studio 2008
- OpenCV 错误:"LINK : fatal error LNK1104: cannot open file 'opencv_core231d.lib' "
- Visual Studio C++ 2010 in-project link error
- 我收到错误"LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup"
- 如何摆脱VS 13中的错误" LINK : fatal error LNK1104: cannot open file 'LIBC.lib' "?
- 编译我的c++程序:clang: error: link命令失败,退出代码为1(使用-v查看调用)
- clang: error: link命令失败,退出代码为1(使用-v查看调用)
- Boost Link Error