【问题标题】:How to Dynamically link libraries in command line?如何在命令行中动态链接库?
【发布时间】:2015-07-22 21:07:27
【问题描述】:

我已经在这个问题上苦苦挣扎了很长时间,假设我使用 notepad++ 并使用 boost 库编写了一些快速的 c++ 代码 我使用 Visual Studio VS2013 的开发人员命令提示符 使用命令提示符进行编译,我总是遇到一些链接器错误,例如:

LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-s-1_58.lib'

但如果我在 Visual Studio 中创建一个空项目,添加 boost 包含和 lib 目录,该项目将成功构建。显然在命令行中链接是静态的而不是动态的。

我的问题是如何在命令行中动态链接库?

【问题讨论】:

  • 即使链接动态库 (DLL) 也需要在链接期间导入库。

标签: c++ boost visual-studio-2013 linker command-prompt


【解决方案1】:

你必须将boost目录添加到%LIB%环境变量中,例如

set LIB=C:\boost\boost_1_57_0\stage\lib;%LIB%

【讨论】:

  • 我做到了,我将 LIBINCLUDE 添加到环境变量中,但这不是这里的问题
  • 报错提示找不到lib文件。所以要么你没有那个 lib 文件,要么你没有正确指定目录。无论您是动态链接还是静态链接,您总是需要一个 lib 文件。但是文件名会不同。
  • 是的,lib 文件名中的 -s 前缀 表示静态链接,我认为 boost 库的正常构建只制作用于动态链接的库,我查了一下,有一个解决方案是做一个完整的构建.\b2 --build-type=complete 但这对我来说不是一个可接受的解决方案,单独的构建后大小对我来说是一个很大的不便
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多