bazel 运行 立即出现分段错误
bazel run immediately Segmentation faults
我正在尝试在现有的 bazel 项目中使用本地构建的包 (this one)。它 bazel 构建没有任何错误,但是当我尝试 bazel 运行 它时,它立即出现段错误。我尝试在调试模式下构建它,但是当我 运行 在调试模式下它仍然立即出现段错误,没有任何有用的错误消息。
我按照自述文件和示例中的说明构建了外部包 运行 很好(在 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;
}
我发现了我的错误。首先,我改变了很多东西而忘记重建外部包,所以这些库不存在...哎呀。
但更重要的是,构建外部包时,它会输出文件扩展名不是 .o
和 .so
的库文件,因此我不得不更改 [=13] 中的以下行=]目标
srcs = glob(["**/*.a"])+glob(["**/*.so"])+glob(["**/*.so.2.1.1"]),
希望这对以后的人有帮助!!
我正在尝试在现有的 bazel 项目中使用本地构建的包 (this one)。它 bazel 构建没有任何错误,但是当我尝试 bazel 运行 它时,它立即出现段错误。我尝试在调试模式下构建它,但是当我 运行 在调试模式下它仍然立即出现段错误,没有任何有用的错误消息。
我按照自述文件和示例中的说明构建了外部包 运行 很好(在 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;
}
我发现了我的错误。首先,我改变了很多东西而忘记重建外部包,所以这些库不存在...哎呀。
但更重要的是,构建外部包时,它会输出文件扩展名不是 .o
和 .so
的库文件,因此我不得不更改 [=13] 中的以下行=]目标
srcs = glob(["**/*.a"])+glob(["**/*.so"])+glob(["**/*.so.2.1.1"]),
希望这对以后的人有帮助!!