【发布时间】:2013-05-17 23:48:41
【问题描述】:
我正在学习如何制作和使用静态库,但遇到了一些问题。这就是我所做的。
首先我编写了一些代码并放入String.h 和String.cpp 文件中。
然后我把它编译成一个目标文件:
mingw32-g++ -c -O2 -s -DNDEBUG String.cpp -o .\obj\String.o
然后我已经存档(?)它:
ar cr .\lib\String.lib .\obj\String.o
并索引(?)它:
ranlib .\lib\String.lib
之后,我已经成功编译并使用 mingw 链接测试:
mingw32-g++ -std=c++03 -Wall -O2 -s -DNDEBUG .\test\src\test.cpp .\lib\String.lib -o .\test\bin\test.exe
测试编译、链接并完美运行。
之后我想将此库包含到我的 MSVS12 项目中。我已经:
将
String.h的路径添加到Project - C/C++ -General - Additional Include Directories在某些项目标题中包含
String.h将
String.lib的路径添加到Project - Linker - General - Additional library directories将
String.lib添加到Project - Linker - Input - Additional dependencies
在我尝试构建项目的所有这些步骤之后,链接器给了我许多LNK2011 和LNK2019 错误。在我看来,它找不到我的功能的实现......
请告诉我我做错了什么以及如何解决它。谢谢!
【问题讨论】:
标签: c++ compiler-construction linker static-libraries linker-errors