C++ visual studio 2010 express链接不同项目中的文件

C++ visual studio 2010 express链接不同项目中的文件,c++,visual-studio-2010,static-linking,dynamic-linking,C++,Visual Studio 2010,Static Linking,Dynamic Linking,在VisualStudio2010快速版中。我有一个名为prj1的项目(静态库)。 prj1具有创建对象obj1的代码 在另一个项目prj2(一个动态库)中,我有一个代码,它通过“new obj1”(obj1的代码在prj1中)来表示对象 现在,当我尝试构建prj2时,会出现链接错误: 1> 当我尝试右键单击prj2->properties->frameworkk和references时,如果我将prj1添加为新引用,我会得到很多链接错误,比如msvcrdt.lib(MSVCR100D.dll)

在VisualStudio2010快速版中。我有一个名为prj1的项目(静态库)。 prj1具有创建对象obj1的代码

在另一个项目prj2(一个动态库)中,我有一个代码,它通过“new obj1”(obj1的代码在prj1中)来表示对象

现在,当我尝试构建prj2时,会出现链接错误:

1> 当我尝试右键单击prj2->properties->frameworkk和references时,如果我将prj1添加为新引用,我会得到很多链接错误,比如msvcrdt.lib(MSVCR100D.dll):错误LNK2005:

2> 如果我不执行上面的步骤1,右键单击解决方案->属性->项目依赖项,然后选择prj1以依赖prj2。然后我得到一个链接错误,它抱怨:错误LNK2019:未解析的外部符号obj1。。。未解决的外部问题

如果有人能帮我解决这个问题,我将非常感激


谢谢

您的静态库必须被找到/添加到库目录以及依赖项列表中。

您选择运行库的选项似乎有所不同。例如,一个项目链接到“多线程调试DLL”,另一个项目链接到“多线程调试”。当您尝试将项目相互链接时,会得到多个定义的运行时库符号。

我的两个项目都有“多线程调试”。但我还是犯了第二个错误。你是不是建议我不要这样做。如果成功的话,在使它们相等之后,我必须添加对proj1的新引用。最好使用“多线程调试DLL”来实现这两个功能。这样可以得到更小的二进制文件。当我在VisualStudio2008中进行类似的转换时,这并不是问题所在。在2008年,我不需要添加库目录。你是在建议我在vs2010中这样做吗?