Я пытаюсь использовать libtorch для своего проекта и собрал его из источников. Я сделал компиляцию и использовал пример кода в документации (используя CMake) и нашел работу как положено. Теперь я расширил то же самое для рабочей области eclipse для поддержки ide, но здесь я столкнулся со странной проблемой связывания с библиотеками gpu cuda.
Я связал все библиотеки для компиляции, как показано ниже
но когда ldd'd библиотеки не связаны с исполняемым файлом, как показано ниже
где при компиляции с CMake я получаю ссылки на cuda libs, как показано здесь
вот доказательство того, что cuda libs связаны во время компиляции на затмении
Это тестовый код, который я использовал
#include <torch/torch.h>
#include <iostream>
int main() {
torch::DeviceType device_type;
if (torch::cuda::is_available()) {
std::cout << "CUDA available! Training on GPU" << std::endl;
device_type = torch::kCUDA;
} else {
std::cout << "Training on CPU" << std::endl;
device_type = torch::kCPU;
}
torch::Device device(device_type);
torch::Tensor tensor = torch::rand( { 2, 3 }).to(device);
std::cout << tensor << std::endl;
return 0;
}
ожидаемый ответ - когда ldd'd на исполняемом файле, сгенерированном eclipse, ожидается, что в списке будут все библиотеки, связанные в eclipse. как показано на первом изображении.