Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 与自制库的链接错误_C++_Static Linking - Fatal编程技术网

C++ 与自制库的链接错误

C++ 与自制库的链接错误,c++,static-linking,C++,Static Linking,我们正在尝试为我们的游戏引擎构建一个编辑器,因此我们从引擎中创建了一个lib并在编辑器Proj中链接它。 Lib和Include Dir的路径在项目中有注释。道具 我尝试了使用WinAPI和不使用WinAPI,但链接错误仍然存在。 在头工作中直接定义的函数,但是在C++文件中定义的函数正在创建链接错误。我必须在项目中添加.cpp文件,库不正是为了这个吗?-- 操作系统:Windows 7 64位 VisualStudio2010 #include "pch.h" Application* g_

我们正在尝试为我们的游戏引擎构建一个编辑器,因此我们从引擎中创建了一个lib并在编辑器Proj中链接它。 Lib和Include Dir的路径在项目中有注释。道具 我尝试了使用WinAPI和不使用WinAPI,但链接错误仍然存在。 在头工作中直接定义的函数,但是在C++文件中定义的函数正在创建链接错误。我必须在项目中添加.cpp文件,库不正是为了这个吗?--

操作系统:Windows 7 64位

VisualStudio2010

#include "pch.h"

Application* g_pApp = NULL;

INT WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
BlocoApp blocoApp(&g_pApp);

// start engine
Editor mainForm;
if(!g_pApp->Init(L"Bloco", 1600, 900, true, hInstance))
{
    g_pApp->Exit();
    return 1;
}

// main loop
DXUTMainLoop();

g_pApp->Exit();

return 0;
}
编译器错误:

error LNK2001: Nicht aufgelöstes externes Symbol ""public: bool __thiscall Application::Init(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >,unsigned int,unsigned int,bool,struct HINSTANCE__ *,struct HWND__ *)" (?Init@Application@@QAE_NV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@II_NPAUHINSTANCE__@@PAUHWND__@@@Z)".
错误LNK2001:Nicht aufgelöstes externes Symbol“public:bool\uu thiscall Application::Init(类std::basic\u string,unsigned int,unsigned int,bool,struct HINSTANCE\uuu*,struct HWND\uu*)”(?Init@Application@@QAE_NV?$basic_string@GU?$char_traits@G@性病病毒$allocator@G@2@@std@@II_NPAUHINSTANCE_uu@@PAUHWND_uuuuuz)”。
库的路径。。。项目中有注释。支柱

我怀疑您已经在项目的“附加库目录”设置中配置了库所在的目录。这将配置链接器将在其中查找它被告知要查找的库文件的位置


但是,您还需要告诉链接器将库实际包含为输入文件。这是在IDE中使用“Input/Additional Dependencies”属性完成的。

也许您可以共享一些代码?还有链接器提供给您的特定错误消息。请发布实际错误(copy-n-paste)。对于一个有问题的函数(和一个调用站点),一些源代码可能也会有所帮助。我很惊讶这种事情需要被问到多少次。在pch.h标题中,它添加了pragma注释(lib,“bloco.lib”),还有#include。我的句子绝对不正确gg@MathiasHölzl:噢,
pragma
应该会起作用。如果执行以下操作,将获得什么输出:
dumpbin/symbols bloco.lib |查找“Init”
?(可能最好将结果粘贴到问题中-我认为注释的格式不太好)。我需要将此命令放在哪里?我用链接器命令行尝试了它,但它指出这个命令没有定义。从“Visual Studio工具”文件夹下的“开始”菜单或IDE中的“工具”菜单打开一个命令窗口(但我自己可能已经添加了一个-我不确定默认情况下它是否在IDE菜单中)。Rn在'bloco.lib'所在的目录中运行该命令。我无法使其工作。当我运行这个命令时,我只得到一个错误,即dll丢失。我还尝试在vc/bin/中复制lib,然后运行cmd。。。