我创建一个没有“预编译头”的静态库(.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 ....