use*_*565 5 c++ static visual-c++-2010
我有一个问题,我一直试图修复最长的时间.
我在visual c ++中有一个静态库项目,我希望另一个项目能够链接到它.到目前为止,我只是添加了对静态库项目的引用,该项目自动链接库.
我希望能够仅使用头文件和.lib文件链接到库.但是,我收到"未解析的外部符号"错误.
我以为我做得对 - 我指定了include目录,库目录,然后进入链接器输入属性并提供了lib作为附加依赖项.
我能够以这种方式引用其他静态库(如SDL),那么当我尝试引用我的时候为什么会出错呢?
谢谢您的帮助.
问题是它没有引用实际的lib文件,还是lib本身内的东西?这些是我得到的错误消息:
错误2错误LNK2019:未解析的外部符号"public:void __thiscall XEngine :: XCore :: XScreen :: init(class XEngine :: XCore :: XGame&)"(?init @ XScreen @ XCore @XEngine @@ QAEXAAVXGame @ 23 @ @Z)在函数"void __cdecl XEngine :: XEngineInit(类XEngine :: XCore :: XScreen&,类XEngine :: XCore :: XGame&)"中引用(?XEngineInit @XEngine @@ YAXAAVXScreen @ XCore @ 1 @ AAVXGame @ 31 @@ Z)C:\ Users\Xander Masotto\Documents\Visual Studio 2010\Projects\Pong\Pong\source.obj Pong
错误3错误LNK2019:未解析的外部符号"public:__thiscall XEngine :: XCore :: XScreen ::〜XScreen(void)"(?? 1XScreen @ XCore @ XEngine @@ QAE @ XZ)在函数"void __cdecl XEngine ::"中引用XEngineInit(类XEngine :: XCore :: XGame&)"(?XEngineInit @XEngine @@ YAXAAVXGame @ XCore @ 1 @@ Z)C:\ Users\Xander Masotto\Documents\Visual Studio 2010\Projects\Pong\Pong\source .obj Pong
错误4错误LNK2019:未解析的外部符号"public:__thiscall XEngine :: XCore :: XScreen :: XScreen(void)"(?? 0XScreen @ XCore @ XEngine @@ QAE @ XZ)在函数"void __cdecl XEngine :: XEngineInit"中引用(类XEngine :: XCore :: XGame&)"(?XEngineInit @XEngine @@ YAXAAVXGame @ XCore @ 1 @@ Z)C:\ Users\Xander Masotto\Documents\Visual Studio 2010\Projects\Pong\Pong\source. obj Pong
确保导出库中想要向其他应用程序(即 dll 或 exe)公开的函数、类和变量。默认情况下它们不会暴露。
当您为库创建项目时,通常会安排完成此操作的基础工作。
#ifdef TESTLIB_EXPORTS
#define TESTLIB_API __declspec(dllexport)
#else
#define TESTLIB_API __declspec(dllimport)
#endif
Run Code Online (Sandbox Code Playgroud)
使用上面在项目创建期间生成的代码,我只需要做两件事即可公开函数、类或变量:
1)确保我已将 TESTLIB_EXPORTS 定义为预处理器。项目设置:C++/Preprocessor/PreprocessorDefinitions
2)在我想要公开的每个函数、类或变量上使用 TESTLIB_API 定义:
class TESTLIB_API Order {
void doSomething();
};
Run Code Online (Sandbox Code Playgroud)