4paradigm / 4paradigm/OpenMLDB
build: choose the libraries shipped in third-party (by default) or the system libraries
- Ngôn ngữ chính
- C++
- Star
- 1.7k
- Fork
- 331
- Merge trung bình
- 12 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 1
Mô tả
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
Hướng dẫn đóng góp
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cmake, cpp
- Lĩnh vực
- build-system
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100