我是CPP,GUROBI和CMAKE的新手。我正在研究一个项目,我正在尝试编译一个C ++程序,需要链接到GUROBI外部库libgurobi81.so
和libgurobi_c++.a
,如GUROBI网站here和here中所述。我的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
我找到了一个可能的解决方案,改编自here:
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
我有一些其他问题,例如库已编译为64位,并且CMAKE也不允许添加共享文件。所以我必须更改一些参数,但即便如此,CMAKE也没有找到该文件。