【问题标题】:Error compiling boost C++ libraries 1.54编译 boost C++ 库 1.54 时出错
【发布时间】:2013-09-15 01:54:27
【问题描述】:

我对提升很陌生。 我需要获取在为我制作的应用程序中使用的一个文件的库文件(这样我就可以自己重新编译应用程序)。

我可以制作 boost 库文件,但有一些文件有错误,无法制作。

这是从命令提示符复制的错误(请注意,我为使文件运行所做的一切都是运行“.\b2 link=shared”)

创建库 bin.v2\libs\thread\build\msvc-11.0\release\threading-multi\b oost_thread-vc110-mt-1_54.lib 和对象 bin.v2\libs\thread\build\msvc-11.0\rele ase\threading-multi\boost_thread-vc110-mt-1_54.exp thread.obj:错误 LNK2019:未解析的外部符号“__declspec(dllimport)pu blic: __thiscall boost::gregorian::greg_month::greg_month(unsigned short)" (_im p??0greg_month@gregorian@boost@@QAE@G@Z) 在函数“public: __this”中引用 调用 boost::gregorian::date::date(枚举 boost::date_time::special_values)" (??0da te@gregorian@boost@@QAE@W4special_values@date_time@2@@Z) bin.v2\libs\thread\build\msvc-11.0\release\threading-multi\boost_thread-vc110-mt -1_54.dll : 致命错误 LNK1120: 1 unresolved externals

非常感谢任何帮助。谢谢

【问题讨论】:

  • 这是 Windows 还是 posix?鉴于您说“命令提示符”,我认为 Windows 但只是想澄清一下。另外,您想要 32 位还是 64 位库?
  • 是的 windows 7,应该提到!
  • 那是 64 位还是 32 位 Windows 7?
  • 64位,但是我需要32位的库文件,所以这就是我正在编译的(我相信这是默认编译的?)..我能够成功编译所有64位库文件跨度>
  • 看我的回答;它消除了这种歧义。我必须同时构建 32 位和 64 位库。

标签: c++ boost boost-thread


【解决方案1】:

对于 32 位增强,启动 32 位命令提示符。 (在 64 位 Windows 上,您可以在 C:\Windows\SysWOW64\cmd.exe 中找到它)。然后从 Boost 根目录运行“bootstrap.bat”。这将创建一个适当的 b2.exe。然后运行

b2 link=shared address-model=32

你的命令和以前一样。 (虽然我注意到您标记了 boost-thread; 要仅构建线程库,请将--with-thread 附加到命令中)。

对于 64 位增强(在 64 位操作系统上),启动 64 位命令提示符 (C:\Windows\System32\cmd.exe)。是的,我知道这看起来很奇怪,但是,相信我。再次运行“boostrap.bat”,然后

b2 link=shared address-model=64

【讨论】:

  • 是的,成功了!实际上,我为 64 位正确地做到了这一点,但我认为我不需要 address-model=32 用于 32 位 .. 认为这是默认设置?或者可能是因为我每次都没有运行引导程序?无论如何,非常感谢!
  • 没问题。我认为错误在于您没有重新运行引导程序。但我把地址模型放进去只是为了确定。 + 顺便说一句,如果您将stage 附加到命令行,那么它将为构建类型创建单独的构建目录。
  • @Bathsheba 我也做了同样的事情,但仍然无法解决问题。我实际上在这里发布了这个问题:stackoverflow.com/questions/21578614/…你知道这个问题吗?你能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 2016-03-24
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多