Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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++ visual studio项目依赖于另一个项目链接失败_C++_Visual Studio 2010_Linker_Dependencies - Fatal编程技术网

C++ visual studio项目依赖于另一个项目链接失败

C++ visual studio项目依赖于另一个项目链接失败,c++,visual-studio-2010,linker,dependencies,C++,Visual Studio 2010,Linker,Dependencies,我有一个包含两个项目的解决方案:cira_lib和md5_test。一个项目(cira_lib)是一个编译成DLL的中央库。另一个项目(md5_测试)是一个依赖于cira_库的exe。当我构建md5_测试时,它首先构建cira_库,因此我知道项目依赖关系正在遵循。但是,当VC++链接md5_测试时,会返回一个链接器错误: 1> win32_cira.vcxproj -> C:\Users\ale-xps\Documents\Visual Studio 2010\Projects\w

我有一个包含两个项目的解决方案:cira_lib和md5_test。一个项目(cira_lib)是一个编译成DLL的中央库。另一个项目(md5_测试)是一个依赖于cira_库的exe。当我构建md5_测试时,它首先构建cira_库,因此我知道项目依赖关系正在遵循。但是,当VC++链接md5_测试时,会返回一个链接器错误:

1>  win32_cira.vcxproj -> C:\Users\ale-xps\Documents\Visual Studio 2010\Projects\win32_cira\Release\cira_lib.dll
2>------ Rebuild All started: Project: md5_test, Configuration: Release Win32 ------
2>  MD5Test.cpp
2>MD5Test.obj : error LNK2001: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getTimeChkSum(void)" (?getTimeChkSum@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
2>C:\Users\ale-xps\Documents\Visual Studio 2010\Projects\win32_cira\Release\md5_test.exe : fatal error LNK1120: 1 unresolved externals
实现文件是

__declspec(dllexport)
string  getTimeChkSum( )
{...}

即使添加了这些指令并重新生成了所有指令,我的exe项目仍然看不到这些符号。

只有专门标记为要导出的符号才可用于链接DLL的可执行文件


您应该选中“全部重建”。为什么我们看不到cira_lib正在生成?很抱歉,我没有包含那个片段,但它确实在这里重建了cira_libAnswer:这里:我已经将头文件更改为u declspec(dllexport)string getTimeChkSum(),实现文件到uu declspec(dllexport)//以毫秒为单位的时间字符串getTimeChkSum(){…}创建的校验和我重建了所有,但仍然得到相同的错误消息。。2> MD5Test.obj:错误LNK2001:未解析的外部符号“class std::basic_string uu cdecl getTimeChkSum(void)”2>C:\Users\ale xps\Documents\visualstudio 2010\Projects\win32_cira\Release\md5_test.exe:致命错误LNK1120:1未解析的外部请注意,我不知道是否需要做任何特殊的事情,我的cira_lib项目是通过“empty project”,不是其他“fancier”项目类型之一。我已经专门将cira_lib的发布目录和cira_lib.lib添加到链接器的输入设置中,md5_测试的链接器错误消失了……您不需要显式添加cira_lib路径来正确构建它。如果没有看到您的项目(vcproj)和解决方案(sln)文件很难知道到底出了什么问题。
__declspec(dllexport)
string  getTimeChkSum( )
{...}