如何在Linux的cmake gcc项目中使用柯南来处理ImGui-SFML依赖关系?

时间:2020-08-06 19:29:06

标签: c++ cmake sfml conan imgui

我想使用conan处理Linux中 let a = sorted.reduce((item,total)=>{ if(total+item <= k) { ans++; return total + item; } }) 项目的依赖性,并构建一个ImGui C ++演示,如下所示:using imgui by Elias Daler

我已经使用柯南成功处理了C++/cmake/gcc依赖项,但是使用ImGui-SFML却出现了链接错误。

我的Boost具有以下说明:

conanfile.txt

然后我将这些行添加到[requires] imgui-sfml/2.1@bincrafters/stable [imports] bin, *.so -> ./bin lib, *.a -> ./lib [generators] cmake_find_package cmake_paths cmake 中以与柯南一起工作:

CMakeLists.txt

然后,在include(${CMAKE_BINARY_DIR}/conan_paths.cmake) include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup() link_directories(${CONAN_LIB_DIRS}) target_link_libraries(my_project ${CONAN_LIBS}) 内部,运行以下命令来构建库并安装依赖项:

build/

到目前为止,对于柯南而言,conan install .. --build imgui-sfml 已生成(由于libImGui-SFML.a,它也已复制到build/lib,尽管我认为自我以来就不需要复制了正在添加[imports]指令)。

然后,我生成生成文件

link_directories()

最后,当我尝试构建项目时

cmake ..

我收到以下链接错误:

cmake --build ./

柯南生成的库是静态的:

/usr/bin/ld: cannot find -lImGui-SFML
/usr/bin/ld: cannot find -lopenal
/usr/bin/ld: cannot find -lFLAC++
/usr/bin/ld: cannot find -lFLAC

这篇文章看起来很相关,但不适用于ImGui:Installing gtest with conan

程序正在寻找共享库吗?

我是否缺少libFLAC.a libFLAC++.a libfreetype.a libImGui-SFML.a libogg.a libopenal.a conanfile.txt文件中的某些配置?


编辑:

CMakeLists.txt

1 个答案:

答案 0 :(得分:0)

根据此报告的issue,此solution(用于类似问题)和柯南的basic setup文档,在这种情况下,CMakeLists.txt应包括:添加自变量{{ 1}},然后调用TARGET,而不是通常的conan_target_link_libraries,如下所示:

target_link_libraries

因此include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) conan_basic_setup(TARGETS) conan_target_link_libraries(${PROJECT_NAME}) 仅需要这些说明:

conanfile.txt