내 프로젝트에서 행렬 곱셈을 수행하기 위해 BLAS_LIB를 사용하고 있습니다. 이것은 내 CMakelist.txt입니다. BLAS_LIB 및 BLAS_INCLUDE 파일 경로가 누락되었습니다. 나는 그것이 아래의 오류에 대한 이유라고 생각합니다. 올바른 이유가 있다면 해결하도록 도와주세요. 내 Qt 프로젝트에 BLAS_LIB를 추가하는 방법은 무엇입니까?
이
은cmake_minimum_required(VERSION 2.6)
project(testconv)
if(UNIX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")
endif()
add_executable(testconv main.cpp)
install(TARGETS testconv RUNTIME DESTINATION bin)
이이 내 CPP 파일입니다
/home/projects/TestConv/main.cpp:24: undefined reference to `cblas_dgemm'
오류입니다
#include <iostream>
#include <random>
#include <cblas.h>
int main (int argc, char* argv[]) {
//Random numbers
std::mt19937_64 rnd;
std::uniform_real_distribution<double> doubleDist(0, 1);
//Create Arrays that represent the matrices A,B,C
const int n = 20;
double* A = new double[n*n];
double* B = new double[n*n];
double* C = new double[n*n];
//Fill A and B with random numbers
for(uint i =0; i <n; i++){
for(uint j=0; j<n; j++){
A[i*n+j] = doubleDist(rnd);
B[i*n+j] = doubleDist(rnd);
}
}
//Calculate A*B=C
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, n, n, n, 1.0, A, n, B, n, 0.0, C, n);
//Clean up
delete[] A;
delete[] B;
delete[] C;
return 0;
}
어떤 CMake 버전입니까? 'cmake --version'을 시도하십시오. – fedepad
안녕하세요, 그것은'cmake 버전 3.5.2' – user8264
'BLAS_LIB와 BLAS_INCLUDE 파일 경로가 없습니다. 나는 그것이 왜곡 오류에 대한 이유라고 생각합니다. 올바른 이유가 있다면 고칠 수 있도록 도와 주시겠습니까? '- 예, 링크가 없으면'정의되지 않은 참조 '오류가 발생합니다. 그것은 당신에게 새로운가요? BLAS 라이브러리를 찾는 것이 문제라면 평소와 같이 [find_package (BLAS)] (https://cmake.org/cmake/help/v3.0/module/FindBLAS.html)가 도움이 될 것입니다. – Tsyvarev