提升静态/ MT发布?

问题描述:

我编译和运行的bjam,甚至用以下命令b2.exe:提升静态/ MT发布?

的bjam --with系统--with线程 ...等

我有我的库文件如:

libboost_system-vc110-MT-1_53.lib
libboost_system-vc110-MT-GD-1_53.lib

的问题是,一旦我说的目录和他们挂钩我一直在说的项目版本不匹配:found/MDRelease在project/MTRelease。

是的,我的项目是静态链接为/ MT版本,这就是我需要的,但是提升会给我带来麻烦。 任何想法?谢谢。

您需要构建静态库。这将这样的伎俩:

的bjam --build型=完全

这听起来像一个版本的问题。您收到的错误表明某些组件是使用一组库建立的,而其他组件是使用不同的一组库建立的。

如果您正在构建其他使用不同类型库(例如MT(多线程 - 无调试)或MDd(多线程调试DLL)的代码),则可能会出现此错误。如果您使用Boost的错误库集链接,您也可能会遇到此错误。您需要使用您在自己的代码中使用的相同类型的库进行构建。如果您使用的是MTD,那么也可以使用MTD版本的Boost库进行构建。

要查看您的项目正在使用的库,请右键单击解决方案资源管理器窗口中的项目并选择属性。也可以从项目菜单中选择属性,但在执行此操作之前,请确保在该项目中有一个文件作为在编辑窗口中打开的当前文件。在运行时库下,您将看到您正在使用的库的类型。如果项目类型是一个dll,那么这个值应该被设置为MDd。要查看它是什么类型的项目,请单击属性下的链接器(或Librarian)选项,如果输出文件是dll,则项目类型为dll。如果它说库或exe,那么该项目分别是库或exe。所有类型的项目都应该以相同的方式构建。例如,您不应该尝试混合使用版本和调试版本。如果你有一个你正在构建的exe文件,那么使用任何用来构建库类型项目的库。要设置库,请在属性下选择配置属性/ C/C++ /代码生成/运行时库,然后从下拉框中选择一种类型。

如果配置看起来对所有项目都是正确的,那么尝试从头开始重建。这可以通过右键单击项目并选择clean,然后选择rebuild来完成。

当运行b2.exe构建库时,我总是使用-q选项在遇到错误时使其停止。如果构建中存在错误,则有时很难看到,因为b2有相当多的输出。有关与b2相关的选项列表,请参阅此link

还要注意,文件libboost_system-vc110-mt-1_53.lib只能用于VS 2012项目。如果你不使用VS 2012,那么你需要做两件事。首先,自2012年以来,您可能无法在2012版以前的任何版本的Visual Studio中使用boost 1.53或更高版本,因为2012年是第一个支持最新版C++标准的版本。所以,你可能不得不使用1.52。你必须做的第二件事是在b2中指定你正在使用的工具集选项所使用的Visual Studio版本(例如 - --toolset = msvc-10.0 - 如果使用VS 2010),以便构建正确的库为你。