CMAKE не находит внешнюю библиотеку GUROBI - PullRequest
0 голосов
/ 23 февраля 2019

Я новичок в CPP, в GUROBI и особенно в CMAKE.Я работаю над проектом и пытаюсь скомпилировать программу на C ++, которая должна ссылаться на внешние библиотеки GUROBI libgurobi81.so и libgurobi_c++.a, как описано на сайте GUROBI здесь и здесь.Структура моего cmake и моего проекта примерно такая:

-folder1
--src
---cmake
--gurobi
---lib
----libgurobi81.so
----libgurobi_c++.a

Мой код компилируется правильно, но происходит сбой только при соединении с библиотеками.Я попытался заставить CMAKE найти библиотеки:

find_library(C_GUROBI_LIB NAMES libgurobi81.so gurobi81 gurobi81_light                                                  
    PATHS   ${LD_LIBRARY_PATH}
            /path/to/folder1/gurobi/lib/
        )
find_library(CPP_GUROBI_LIB NAMES gurobi_c++
    PATHS   ${LD_LIBRARY_PATH}
            /path/to/folder1/folder1/gurobi/lib/
    )

и затем напечатать это:

message("C_GUROBI_LIB points to " ${C_GUROBI_LIB})
message("CPP_GUROBI_LIB points to " ${CPP_GUROBI_LIB})

Однако, даже если библиотека находится в этой папке, CMAKE не находит ее иничего не показывает:

C_GUROBI_LIB points to 
CPP_GUROBI_LIB points to 

1 Ответ

0 голосов
/ 24 февраля 2019

Я нашел возможное решение, адаптированное из здесь :

set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")

У меня были некоторые другие проблемы, например, библиотека была скомпилирована для 64 бит, а также что CMAKE не сделалразрешить добавлять общие файлы.Поэтому мне пришлось изменить некоторые параметры, но даже при этом CMAKE не нашел файл.

...