Как мне использовать модуль libjpeg_turbo, находящийся в BCR, в качестве зависимости в моей сборке? Он компилируется, ноC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как мне использовать модуль libjpeg_turbo, находящийся в BCR, в качестве зависимости в моей сборке? Он компилируется, но

Сообщение Anonymous »

Я пытаюсь использовать Bazel для создания приложения, которое создает изображение и использует libjpeg-turbo для сохранения изображения в формате JPEG.
Я пытаюсь использовать bzlmod для добавления зависимости libjpeg_turbo из центрального репозитория Bazel (BCR) (https://registry.bazel.build/modules/libjpeg_turbo).
Однако, когда я пытаюсь собрать приложение, оно компилируется, но связывание завершается неудачей.
Команда сборки Bazel:
bazel build //turbojpeg:example

Вывод Bazel (с подробными ошибками):
INFO: Analyzed target //turbojpeg:example (0 packages loaded, 0 targets configured).
ERROR: /Users/valmiki/Dev/temp2/turbojpeg/BUILD:1:11: Linking turbojpeg/example failed: (Exit 1): cc_wrapper.sh failed: error executing CppLink command (from target //turbojpeg:example)
(cd /private/var/tmp/_bazel_valmiki/5b36295262302c6db5034bbaa6b2e19e/sandbox/darwin-sandbox/109/execroot/_main && \
exec env - \
PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin \
PWD=/proc/self/cwd \
ZERO_AR_DATE=1 \
external/rules_cc++cc_configure_extension+local_config_cc/cc_wrapper.sh @bazel-out/darwin_x86_64-fastbuild/bin/turbojpeg/example-0.params)
# Configuration: f06750ad0b682d6970d3e24c6fed89083321415d232b01d47b513459df0dedb1
# Execution platform: @@platforms//host:host

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
Undefined symbols for architecture x86_64:
"_tjCompress2", referenced from:
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
"_tjDestroy", referenced from:
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
"_tjFree", referenced from:
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
"_tjGetErrorStr", referenced from:
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
"_tjInitCompress", referenced from:
compressImage(unsigned char const*, int, int, int, int, std::__1::vector&) in example.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Target //turbojpeg:example failed to build
INFO: Elapsed time: 0.333s, Critical Path: 0.22s
INFO: 2 processes: 1 action cache hit, 2 internal.
ERROR: Build did NOT complete successfully

Версия Bazel: 8.4.2-homebrew
ОС: Macos 15.6.1
Языковая версия:MODULE.bazel содержимое файла:
module(name = "example", version="0.1")

# -- bazel_dep definitions -- #
bazel_dep(name = "libjpeg_turbo", version = "3.1.2")

turbojpeg/BUILD содержимое файла:
cc_binary (
name = "example",
srcs = ["example.cpp"],
deps = ["@libjpeg_turbo//:jpeg"],
)

example.cpp содержимое файла:
#include
#include
#include
#include

// Function to compress a raw image to JPEG
bool compressImage(const unsigned char* rgb_buffer, int width, int height,
int pixelFormat, int quality, std::vector& jpeg_buffer) {
tjhandle compressor = tjInitCompress();
if (!compressor) {
std::cerr

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

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

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

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

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

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