如何在 MSVC 中静态链接库
How to statically link a library in MSVC?
我正在Visual C++ 10 Microsoft编译我的程序,它使用PDCurses库。我已经将其配置为链接到 pdcurses.lib,但是当我尝试运行该应用程序时,系统抱怨它找不到"pdcurses.dll"。它不应该抱怨它。我曾经使用 MinGW (GCC( 编译程序,当我尝试运行应用程序时,它不会询问我任何 DLL。我该怎么做才能使 MSVC 静态链接 PDCurses?
在 MSVC 中,.lib
文件可以采用两种形式:
- 静态库
- 导入库
使应用程序知道从 DLL 导出的入口点,然后将其写入 PE 文件的导入目录(或写入延迟加载导入的另一个类似位置(。
但是,后者实际上会将它包含的每个引用函数的代码链接到最终的二进制文件中。这是您想要的,但是如果要链接的库的版本未提供该静态库,则可能必须从源代码自己构建该静态库。
但是,还有另一种可能性:您可能只是传递了错误的目录,以便链接器查找.lib
文件。在这种情况下,您将链接到导入库而不是静态库。请确保检查生成日志中所使用的路径。但是,这仅适用于库的分发包含两种类型的库的情况。
dll 需要位于路径中。
相关文章:
- 基于boost的程序的静态链接——zlib问题
- 使用gcc从静态链接的文件中查找可选符号
- 使用转换器提升 Python 问题 - 静态链接
- C++实用程序::转换在静态链接库中不起作用
- 将源中的 GLEW 与 cmake 静态链接
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 静态链接启用 PIC 的库时出现链接器 PIC 错误
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 静态链接 glibc & boost_python36 for Python extension
- 我可以在C++中配置静态链接吗?
- 协议缓冲区的静态链接会导致与现有符号冲突
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 静态链接 Visual Studio dll 到动态链接的 sfml 项目
- 我可以加载与库静态链接的 dll 吗?
- 静态链接MSVC库,动态链接Qt
- C++:找不到静态链接
- OpenSSL AES仅适用于某些计算机,即使具有静态链接也是如此
- CURL 静态链接未解析的外部符号
- 如何强制Windows.h在Visual Studio中静态链接而不是动态链接?