4paradigm / 4paradigm/OpenMLDB
build: choose the libraries shipped in third-party (by default) or the system libraries
- Lenguaje dominante
- C++
- Estrellas
- 1.7k
- Forks
- 331
- Merge medio
- 12 d 12 h
- PR fusionados (30 d)
- 1
Descripción
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
Guía de contribución
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cmake, cpp
- Área
- build-system
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100