4paradigm / 4paradigm/OpenMLDB

build: choose the libraries shipped in third-party (by default) or the system libraries

Ouverte
#1,277 6 commentaires 0 réactions 2 personnes assignées Réclamée par @aceforeverd Voir sur GitHub
bug build enhancement
Langage dominant
C++
Étoiles
1.7k
Forks
331
Merge moyen
12 j 12 h
PR mergées (30 j)
1

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cmake, cpp
Domaine
build-system
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.