gpt4 book ai didi

c++ - 将代码移动到函数中时,错误 0xC0000138 在 DLL "myApp.exe"中找不到序号

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:10 26 4
gpt4 key购买 nike

我想试用 Blaze 线性代数库并从一个简单的测试程序开始。它看起来像这样:

#include <iostream>

#include <blaze/Blaze.h>

typedef blaze::DynamicVector<int, blaze::columnVector> bdVector;

int main(int argn, char** argc) {

bdVector a{ 1, 2, 3 };

std::cout << a+a << std::endl;

return 0;
}

这很好用。但是当我将代码移动到一个单独的函数中时,就像这样

#include <iostream>

#include <blaze/Blaze.h>

typedef blaze::DynamicVector<int, blaze::columnVector> bdVector;

bdVector func(bdVector a, bdVector b) { return a + b; }

int main(int argn, char** argc) {

bdVector a{ 1, 2, 3 };

std::cout << func(a,a) << std::endl;

return 0;
}

我得到了错误

The Ordinal 968 was not found in DLL "PATH/blaze-test.exe" 它显然与 ntdll.dll 有关:

blaze-test.exe 中 0x00007FFA7128EB78 (ntdll.dll) 异常:0xC0000138:未找到序号。

当我用谷歌搜索这个错误时,我没有找到相关的东西,所以我希望这里的一些人有一个想法。

最好的问候

ps:以防万一:我使用了 CMake 和 Visual Studio 2019 并构建了调试和发布配置(在发布中它只是序号 900)

edit:看来这不是因为功能。我将这一行添加到工作代码中

bdVector b = a;

这个赋值会导致同样的错误。

最佳答案

我发现了问题。似乎 MKL 附带了 OpenMP 的库。由于 CMake 中的 find_package(OpenMP),因此有两个 OpenMP 库。它适用于 Clang,因为 Clang 没有找到 OpenMP。

但是我不明白为什么在我使用赋值时会发生这种情况。我希望它总是发生或在我使用使用 OpenMP 的操作时发生。

关于c++ - 将代码移动到函数中时,错误 0xC0000138 在 DLL "myApp.exe"中找不到序号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57178013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com