4paradigm / 4paradigm/OpenMLDB
build: choose the libraries shipped in third-party (by default) or the system libraries
- 主要语言
- C++
- 星标
- 1.7k
- 派生
- 331
- 平均合并
- 12 天 12 小时
- 30 天内合并 PR
- 1
描述
If users compile in its own physical machines rather than the provided docker environment, there may be some linking issues.
## Expected Behavior
use the static libraries located in `.deps/usr/` first, then system dynamic libraries
## Current Behavior
If the system has already installed some libraries, it will link these libraries from system locations rather than the static libraries in the project-specific locations (i.e., `.deps/usr`).
e.g., brpc protobuf glog gflags unwind ssl crypto leveldb z snappy and others
## Possible Solution
use `find_library` or `find_package` to look for the libraries in the project library location (`.deps/usr`) first, then other system locations.
## Steps to Reproduce
1. if the system has already installed the dependent libraries which do not meet the requirements of OpenMLDB, the complication will fail.
## Context (Environment)
custom os environment (not provided docker environment)
## Detailed Description
## Possible Implementation
贡献指南
调研方向
The issue is about CMake linking order for libraries like brpc, protobuf, glog, etc. Look at the CMakeLists.txt files to see how find_library or find_package is currently used. The goal is to modify the CMake configuration to prioritize static libraries in .deps/usr/ over system libraries. Test by building in a custom OS environment without the provided Docker setup to verify linking works correctly.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cmake, cpp
- 领域
- build-system
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100