Linux下安装edbee-lib异常:仅安装QsLog未安装目标库
解决edbee-lib仅安装QsLog的问题
问题根源
edbee-lib的默认CMake配置未为主库添加install规则,只有依赖的QsLog包含了完整的安装逻辑,导致执行sudo make install时仅安装QsLog相关文件。
可行解决方案
方案1:手动补全安装规则
进入edbee-lib源码根目录,修改CMakeLists.txt,为edbee主库添加安装指令:
# 找到定义edbee库的代码块(通常在`add_library(edbee ...)`之后),添加以下内容 install(TARGETS edbee LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(DIRECTORY include/edbee DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
之后重新执行编译安装流程:
cd build cmake -DBUILD_WITH_QT5=False -DCMAKE_PREFIX_PATH=/home/mitjancic/Qt/6.5.3/gcc_64/ .. make sudo make install
方案2:不全局安装,直接在项目中引入
如果不需要全局安装edbee-lib,推荐直接在你的CMake项目中通过源码引入:
# 在你的项目CMakeLists.txt中添加 add_subdirectory(/path/to/your/edbee-lib) target_link_libraries(your_project_target PRIVATE edbee)
这种方式无需执行make install,编译时会直接链接edbee-lib的源码,避免全局安装的配置问题。
方案3:检查并启用编译选项
部分项目会用开关控制是否安装主库,你可以尝试在cmake命令中添加BUILD_SHARED_LIBS=ON(如需动态库)或者明确指定安装前缀:
cmake -DBUILD_WITH_QT5=False -DCMAKE_PREFIX_PATH=/home/mitjancic/Qt/6.5.3/gcc_64/ -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON ..
重新编译安装后检查/usr/local/lib/和/usr/local/include/目录是否已生成edbee相关文件。
内容的提问来源于stack exchange,提问作者skrat
相关产品推荐
相关产品推荐

