Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ 在发布和调试模式下同时使用Boost_Visual C++_Debugging_Release_Mixed - Fatal编程技术网

Visual c++ 在发布和调试模式下同时使用Boost

Visual c++ 在发布和调试模式下同时使用Boost,visual-c++,debugging,release,mixed,Visual C++,Debugging,Release,Mixed,标题只是为了取笑。:-) 我知道这是不可能的,但这是我的问题 我的应用程序(实际上是一个DLL)使用Boost。它还使用一个外部API,它也使用Boost。 外部API当然是在一个发布二进制文件中提供的,即所需的发布增强二进制文件 当我在发布模式下编译/链接我的DLL时,我没有问题。我以动态方式将我的应用程序链接到Boost(Boost\u ALL\u DYN\u link)。在调试模式下,我无法加载我的DLL。 我不确定这是因为Boost,但我怀疑Windows不喜欢使用两个Boost(由外部

标题只是为了取笑。:-) 我知道这是不可能的,但这是我的问题

我的应用程序(实际上是一个DLL)使用Boost。它还使用一个外部API,它也使用Boost。 外部API当然是在一个发布二进制文件中提供的,即所需的发布增强二进制文件

当我在发布模式下编译/链接我的DLL时,我没有问题。我以动态方式将我的应用程序链接到Boost(Boost\u ALL\u DYN\u link)。在调试模式下,我无法加载我的DLL。 我不确定这是因为Boost,但我怀疑Windows不喜欢使用两个Boost(由外部库调用的版本和由我的代码调用的调试版本)

如果我将我的代码静态链接到发行版Boost,它会工作得更好吗

我认为它与CRT无关,因为我在事件查看器中没有任何内容

我使用VisualStudio2005SP1

谢谢

如果我将我的代码静态链接到发行版Boost,它会工作得更好吗


是的,这正是我所期望的-如果你静态链接,你会在二进制文件中得到一个boost“拷贝”,并且你自己的boost需求永远不会加载boost DLL。。外部库将很高兴地链接到其发行版DLL。但是,如果外部库在您的应用程序调用的公共API中实际使用boost,这将不起作用!在这种情况下,您将无法解决问题。如果您调用任何需要boost的API,那么您的boost构建必须与API实现的boost相匹配。

我打算静态地将调试应用程序链接到版本boost。您的“然而”仍然适用吗?如果您将应用程序与boost的发布版本链接。。为什么不使用与外部库相同的boostdll运行时?我认为没有必要静态链接。你完全正确。我的脑子里一直想着2个增压包。:-)