在代码块和 vs9 编译器中无法识别带有 "lib"头的库文件名

The library file name with "lib" head can't be recognized in codeblocks and vs9 compiler

本文关键字:lib 文件名 识别 代码 vs9 编译器      更新时间:2023-10-16

这个环境是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>。如果您喜欢静态链接,请确保更改/删除此设置。

无论哪种方式,都要确保各自的二进制文件可用,并且链接器知道它们的位置(只是目录(。