在代码块和 vs9 编译器中无法识别带有 "lib"头的库文件名
The library file name with "lib" head can't be recognized in codeblocks and vs9 compiler
这个环境是win7,代码块,vs9,boost1.52,
我已经用python库安装了boost库。它生成一些库文件。如"libboost_python-vc90-mt-gd-1_52.lib"。
然后我写了一个测试代码来编译和链接。但出现错误:无法打开文件"boost_python-vc90-mt-gd-1_52.lib"。
VS编译器无法识别头为"lib"的库文件名?如何做得更好。
在名称的开头添加lib
前缀是Linux的事情。在Windows上,在末尾有一个.lib
。
如果库的名称为"libboost_python-vc90-mt-gd-1_52",则必须为链接器指定该名称。
首先,Boost在Windows下使用自动链接。因此,您只需要提供boost库的位置,而不需要提供名称本身。
其次,Boost为静态和动态链接的库使用不同的文件名。带lib
前缀的用于静态链接,不带前缀的用于动态链接。
默认情况下,Boost在Windows上使用静态链接。定义BOOST_ALL_DYN_LINK
(如果您只想动态链接某些库,也有库特定的宏(将启用动态链接。
从您的错误消息中,您的项目似乎已启用BOOST_ALL_DYN_LINK
(在项目设置中,作为#define
或<boost/config/user.hpp>
。如果您喜欢静态链接,请确保更改/删除此设置。
无论哪种方式,都要确保各自的二进制文件可用,并且链接器知道它们的位置(只是目录(。
相关文章:
- 从命令行c++发送文本文件名
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- JSON转换为nlohmann JSON-lib中的结构数组
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 使用 VS2015 在 Windows 10 上构建 Fortran .lib x64 位并将其链接到 C++
- 为什么我的链接器在找到Coin4d.lib后搜索Coin4sd.lib?
- libcpmtd.lib有什么用?
- 在Visual Studio 2019中保存时ReadDirectoryChangesW文件名的问题
- C++:在Windows中浏览名称中带有点的文件名
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 不带预处理器的调用方法/文件的文件名/行号
- 在 C++ 中为文件名添加时间戳
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 解析引用 |exe/dll vs lib
- 在代码块和 vs9 编译器中无法识别带有 "lib"头的库文件名