将静态库链接到我在 Visual Studio 2010 上的项目
Linking a static library to my project on Visual Studio 2010
我想使用 oscpack (http://code.google.com/p/oscpack/) 作为我的项目的静态库,但当我尝试将其添加到示例中时,我收到链接错误,例如:
1>oscpackd.lib(UdpSocket.obj):错误LNK2019:未解析的外部符号__imp__socket@12函数"public: __thiscall UdpSocket::Implementation::Implementation(void)"(??0Implementation@UdpSocket@@QAE@XZ)
1>oscpackd.lib(UdpSocket.obj):错误LNK2019:未解析的外部符号__imp__closesocket@4函数"public: __thiscall UdpSocket::Implementation::~Implementation(void)"(??1Implementation@UdpSocket@@QAE@XZ)
。
基本上,我创建了一个用于构建oscpack.lib的解决方案,在项目中我添加了相应的.h和.cpp文件。
然后在示例解决方案中,我添加了我的 main.cpp然后我包括(属性>C/C++>附加包含目录)oscpack 库的文件夹,然后在链接器选项卡上我添加了库的文件夹位置和库的名称。
"解决方案资源管理器"窗口中右键单击项目,然后单击"属性">"链接器">"其他依赖项"输入>设置。 您必须添加 ws2_32.lib。
VS 项目模板负责告诉链接器链接最常见的 Windows 库。 像kernel32.lib一样,没有它你就无法编写Windows程序。 但不是winsock,不是每个程序都想要创建一个套接字。 这必须明确补充。
您可以从 MSDN 文章中找到这些类型的依赖项,例如 closesocket()。 它位于文章的底部。 标题位告诉您需要 #include 的内容,您做对了。 库位告诉您需要告诉链接器链接的内容。 不是自动的,你必须自己照顾它。
已经有正确的答案 - 您需要指定要链接的 winsock 库。但这是我最喜欢的小项目方法: #pragma comment(lib, "ws2_32.lib")
只需将其放在您的主中.cpp(注意:特定于 MSVC)
你是说你把库和main.cpp放到单独的解决方案中吗? 尝试将它们放入同一解决方案中,并相应地设置项目引用。
此外,请确保对正确的生成配置进行更改。 即,如果您在调试模式下构建,请确保已将库名称和头目录添加到调试配置中。
- 无法在 Visual Studio 2010 中构建 Allegro C++ 程序
- Visual Studio 2013,错误 MSB8020:找不到 Visual Studio 2010 的生成工具
- std::array initalization with Visual Studio 2010
- 将代码从 32 位迁移到 64 位时出现问题 Visual Studio 2010
- 在 Visual Studio 2010(及更高版本)中定义包含或链接路径变量的位置
- Visual Studio 2010 单元测试:无法识别引用的项目类
- Visual Studio 2010 - C++ 致命错误 LNK1120: 1 个未解析的外部
- C /FORTRAN项目由Visual Studio 2010/Intel 2013创建,将不会在Visual St
- 如何使 Visual Studio 2010 警告未使用的变量
- 如何解决错误 C2719 在 Visual Studio 2010 C++ 中不存在代码行时
- 按值传递的参数在 Visual Studio 2010, C++ 的调试器中显示为通过引用传递
- Visual Studio 2010 是否执行零初始化
- 无法使用 Visual Studio 2010 和 Qt 版本 4.8.0 创建"Qt Gui Application"
- 如何将Visual studio 2010升级到2015版本
- Visual Studio 2010 调用 _locking() 失败 (errno = 22) 当文件指针高于 (2^
- Qt 4.8 与 Visual Studio 2010 的链接错误
- Visual Studio(整个过程)2010无法升级较旧的解决方案
- OpenSSL on Windows and Visual Studio 2010
- 在Visual Studio 2010中使用大型查找表的链接限制使用代码库的限制
- Visual Studio 2010:致命错误C1189:#Error