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