我想使用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
答案 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