【问题标题】:Linker problem linking boost in Visual Studio 2008链接器问题在 Visual Studio 2008 中链接提升
【发布时间】:2010-04-01 14:15:35
【问题描述】:

我在 Visual Studio 2008 中有一个相当模糊的链接问题。链接器错误消息是:“LNK1104:无法打开文件 'boost_thread-vc90-mt-gd-1_38.lib'”。所有路径和依赖项都已设置。 我注意到的是,Visual Studio 错过了 boost_thread-vc90-mt-gd-1_38.lib 而不是 libboost_thread-vc90-mt-gd-1_38.lib (注意文件开头的 lib姓名)。我将 .lib 作为 libboost_thread-vc90-mt-gd-1_38.lib 添加到项目中,它在命令行中显示为 libboost_thread-vc90-mt-gd-1_38.lib。

为什么 Visual Studio 的文件名开头?

【问题讨论】:

    标签: visual-studio-2008 boost linker


    【解决方案1】:

    Boost 中有一个命名库的规则:

    1) boost_thread-vc90-mt-gd-1_38.lib 用于动态链接版本 2) libboost_thread-vc90-mt-gd-1_38.lib 用于静态链接版本

    BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".

    您可以在项目中定义一个预处理器定义,以便使用 boost 库的动态链接版本BOOST_DYN_LINK=1

    它有这样的描述:

    BOOST_DYN_LINK: Optional: when set link to dll rather than static library.

    另一个告诉使用动态版本的Boost.Thread的定义是BOOST_THREAD_USE_DLL

    【讨论】:

    • 谢谢,在项目深处的某个地方有一个符号集来使用 dll。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2010-11-12
    相关资源
    最近更新 更多