Проблемы с установкой CudaSift - PullRequest
0 голосов
/ 05 февраля 2020

Я только что перешел на C ++ с Python. Я использую VSCode, и я хотел бы использовать следующую библиотеку: https://github.com/Celebrandil/CudaSift.

Так что я клонирую репозиторий, создаю папку для сборки внутри, cd в папку для сборки, используйте: cmake .. затем sudo make и наконец sudo make install Я получаю следующий вывод в консоли:

enter image description here

После выполнения этих шагов я получаю файл общей библиотеки с именем 'cudasift'.

Исходя из того, что я понимаю, я должен затем скомпилировать свой код, который выглядит следующим образом:

#include <iostream>
#include <opencv4/opencv2/opencv.hpp>
#include <cudaImage.h>
#include <cudaSift.h>

int main(){
    SiftData siftData;
    cv::Mat img;
    cv::imread("Cam_0-19129655-STATIC-exp:200-gain:27.jpg").convertTo(img, CV_32FC1);

    CudaImage cuda_img;
    // cuda_img.Allocate(4000, 3000, 4000, false, NULL, (float*) cuda_img.d_data);

    // cuda_img.Download();

    int numOctaves = 5;
    float initBlur = 1.0f;
    float thresh = 3.5f;
    float minScale = 0.0f;
    bool upScale = false;

    // ExtractSift(siftData, cuda_img, numOctaves, initBlur, thresh, minScale, upScale);

    // FreeSiftData(siftData);

    return 0;
}

Поэтому я должен выполнить что-то вроде: g++ test.cpp -o test 'pkg-config opencv --cflags --libs' -I/path/to/my/headers -L/path/to/my/shared/library -lmylib

Проблема в том, что моя вновь полученная разделяемая библиотека называется 'cudasift', но -lmylib будет искать файл с именем 'libmylib.so', поэтому я переименую свою библиотеку в 'libcudasift.so', и Я получаю следующую ошибку:

/usr/bin/ld: /home/user/Documents/packages/CudaSift/build/libcudasift.so: _ZSt4cout: invalid version 13 (max 0)
/home/user/Documents/packages/CudaSift/build/libcudasift.so: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:2: recipe for target 'test' failed
make: *** [test] Error 1
The terminal process terminated with exit code: 2

Я остаюсь здесь застрявшим после нескольких часов поисков ответа. PS: я использую VSCode

...