我想使用 conan 在 Linux 中处理项目的依赖关系,C++/cmake/gcc
并构建一个 ImGui C++ 演示,如下所示:使用 Elias Daler 的 imgui
我已经使用Boost
柯南成功地处理了依赖关系,但是使用 ImGui-SFML 我遇到了链接错误。
我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()
指令,但我认为不应该需要副本)。
然后,我生成makefile
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
柯南生成的库是静态的:
libFLAC.a
libFLAC++.a
libfreetype.a
libImGui-SFML.a
libogg.a
libopenal.a
这篇文章看起来很相关,但不适用于 ImGui:Installing gtest with conan
程序是否在寻找共享库?
我是否conanfile.txt
在文件或文件中缺少某些配置CMakeLists.txt
?
编辑:
Conan version 1.25.2