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"]),

Надеюсь, это поможет кому-то в будущем!!

Другие вопросы по тегам