使用VS2012时使用静态lib(.lib)时出错

时间:2014-08-10 06:47:19

标签: c++ visual-studio-2012 static-libraries vc6 .lib

我创建一个没有“预编译头”的静态库(.lib文件)。并命名为project_1。

的main.cpp

#include<iostream>
using namespace std; 
void display(void);
int main()
{
   cout<<"test_main\n";
   display();
   return 0;
} 

display.cpp

 #include<iostream>
 using namespace std; 
 void display(void) 
 { 
     cout<<"display\n"; 
 }

并构建此项目(“win32 release”)并将.lib文件复制到另一个项目并确定。 现在我想使用这个.lib文件。 现在make project_2。(显示如下)并且知道编译器test.lib:

linker-&gt; input-&gt; Additional Dependencies-&gt; test.lib

并将test.lib文件复制到与main.cpp相同的文件夹中(路径main.cpp和test.lib相同)。

的main.cpp

//#include<iostream>       // ERROR 
using namespace std; 
void display(void);
int main()
{
   display();
   return 0;
} 

但是当在main.cpp上写任何#include<...>(例如==&gt; #include<iostream>)时,编译器会生成ERROR。

另外,如果在main.cpp中删除display();,编译器会成功。

我使用VS2012和其他问题,在VC ++ 6这个问题没有!。

我做什么?

错误列表

错误 LNK1319 :检测到2 不匹配 ...

错误 LNK2038 :检测到“ _ITERATOR_DEBUG_LEVEL ”不匹配:值“0”与main.ob中的值“2”不匹配。

错误 LNK2038 :检测到“ RuntimeLibrary ”不匹配:值“ MD_DynamicRelease ”与值“ MDd_DynamicDebug”不匹配'在main.obj ....

0 个答案:

没有答案