CMake链接OpenBLAS共享库非法指令

时间:2016-08-26 09:39:05

标签: linux cmake shared-libraries openblas

我有一个关于使用CMake链接共享库的问题。

从源代码构建OpenBLAS并成功安装后。 在/ opt / OpenBLAS / include中有头文件和 在/ opt / OpenBLAS / lib中有共享库和静态库。

如果我有一个玩具程序,请调用cpp_gemm.cpp,我可以通过输入

来构建它
g++ -o cpp_gemm cpp_gemm.cpp -I/opt/OpenBLAS/include -L/opt/OpenBLAS/lib -lopenblas

并在没有错误消息的情况下执行它。

但是我想用CMake来构建它,所以我在CMakeLists.txt中写下以下规则

cmake_minimum_required(VERSION 2.8.4)
project(CppGEMM)

include_directories(/opt/OpenBLAS/include)
link_directories(/opt/OpenBLAS/lib)
add_executable(cpp_gemm cpp_gemm.cpp)
target_link_libraries(cpp_gemm openblas)

创建构建文件夹并输入后,我输入

cmake ..
make

成功构建程序。 但我会得到

Illegal instruction (core dumped)

执行后。

通过Google搜索搜索相关问题后,我发现了这一点 取代

link_directories(/opt/OpenBLAS/lib)

link_directories(/opt/OpenBLAS)

可以解决我的问题。 也就是说,我可以成功构建程序并在没有的情况下执行它 错误信息。

我很困惑,但我找不到任何材料来实现它。 谁能告诉我为什么会这样? 非常感谢!

0 个答案:

没有答案