bazel запустить немедленно Ошибки сегментации
Я пытаюсь использовать локально созданный пакет (этот) в существующем проекте bazel. Он строится без ошибок, но когда я пытаюсь запустить его, он сразу перестает работать. Я попытался создать его в режиме отладки, но когда я запустил его в режиме отладки, он по-прежнему сразу выдает ошибку без каких-либо полезных сообщений об ошибке.
Я создал внешний пакет, следуя инструкциям в README, и примеры работают нормально (за пределами bazel), поэтому я знаю, что внешние библиотеки не являются проблемой.
Я создал репозиторий для доступа к этому пакету в моем WORKSPACE
файл
new_local_repository(
name = "ApproxMVBB",
path = "/absolute/path/to/ApproxMVBB",
build_file = "approxmvbb.BUILD", )
В approxmvbb.BUILD
файл выглядит так
cc_library(
name = "ApproxMVBB-lib",
srcs = glob(["**/*.a"])+glob(["**/*.so"]),
hdrs = glob(["**/*.hpp"]),
includes = ["include", "build/include", "external/Diameter/include", "external/GeometryPredicates/include"],
visibility = ["//visibility:public"],
)
И cc_binary, который я пытаюсь запустить, выглядит так
cc_binary(
name = "TestMVBB",
srcs = [
"src/test_approxmvbb.cpp",
],
deps = [
"@ApproxMVBB//:ApproxMVBB-lib",
],
linkopts = ["-shared"],
)
Исходный код двоичного файла src/test_approvmvbb.cpp
#include <iostream>
#include "ApproxMVBB/ComputeApproxMVBB.hpp"
int main(int argc, char** argv)
{
ApproxMVBB::Matrix3Dyn points(3,10000);
points.setRandom();
ApproxMVBB::OOBB oobb = ApproxMVBB::approximateMVBB(points,0.001,500,5,0,5);
oobb.expandToMinExtentRelative(0.1);
return 0;
}
1 ответ
Я нашел свои ошибки. Во-первых, я много чего менял и забыл пересобрать внешний пакет, поэтому библиотек не было... ой.
Но что еще более важно, когда внешний пакет собран, он выводит файлы библиотеки с расширениями, отличными от .o
а также .so
поэтому мне пришлось изменить следующую строку в cc_library
цель
srcs = glob(["**/*.a"])+glob(["**/*.so"])+glob(["**/*.so.2.1.1"]),
Надеюсь, это поможет кому-то в будущем!!