Создайте libre2.a [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создайте libre2.a [дубликат]

Сообщение Anonymous »

Мне нужна библиотека Google re2 для кросс-платформенного проекта (win, mac, linux, android), а Linux — единственная операционная система с приемлемой ее упаковкой (arch Linux не использует cmake, но это решаемо), Brew и vcpkg терпят неудачу по-своему, и я даже не знаю, где искать Android.
Вместо того, чтобы разбираться с беспорядком в упаковке, я хочу собрать библиотеки для моего CI (и конечных пользователей) и, возможно, для других людей.
re2, к сожалению, зависит от подмножества спуска, что делает его более болезненным, и я не совсем уверен, как заставить обе системы сборки чисто плевать в меня .o, которые я затем могу вставить в .a без
Вот мой лучший шанс CMakeLists.txt
cmake_minimum_required(VERSION 3.22)
project(RE2_MONOLITHIC CXX)

include(FetchContent)

FetchContent_Declare(
abseil
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
GIT_TAG 20250814.1
)
FetchContent_MakeAvailable(abseil)
FetchContent_Declare(
re2
GIT_REPOSITORY https://github.com/google/re2.git
GIT_TAG 2025-08-12
)
FetchContent_MakeAvailable(re2)

file(WRITE ${CMAKE_BINARY_DIR}/dummy.cpp "// dummy source")
add_library(re2_static STATIC ${CMAKE_BINARY_DIR}/dummy.cpp)

target_link_libraries(re2_static PRIVATE
re2::re2
absl::base
absl::strings
absl::synchronization
absl::optional
absl::flat_hash_map
absl::flat_hash_set
absl::inlined_vector
absl::flags
absl::core_headers
absl::str_format
absl::span
absl::hash
absl::fixed_array
)

который не работает с
CMake Error in build/_deps/re2-src/CMakeLists.txt:
install(EXPORT "re2Targets" ...) includes target "re2" which requires
target "absl_{every submodule}" that is not in any export set.


Подробнее здесь: https://stackoverflow.com/questions/797 ... a-libre2-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»