Я пытаюсь собрать программу stati c golang, которая использует Realsense SDK.
Она работает в режиме отладки, и если я запускаю простую команду go build
.
Я хочу собрать ее stati c и сделать его более переносимым.
мой cgo конфиг выглядит следующим образом:
/*
#cgo CXXFLAGS: --std=c++11 -Wall -O3 -mavx -DNDEBUG -march=native -DWITH_QT=OFF -DWITH_GTK=OFF -DUSE_AVX_INSTRUCTIONS=ON
#cgo LDFLAGS: -L/usr/lib/x86_64-linux-gnu/ -L/usr/local/lib -lrealsense2
#cgo CPPFLAGS: -I/usr/local/include
#include <stdlib.h>
#include <stdint.h>
#include <rs.h> // Include RealSense wraper
*/
Я установил realsense, используя следующий скрипт:
git clone https://github.com/IntelRealSense/librealsense.git $(TMP_DIR)librealsense
cd $(TMP_DIR)librealsense
./scripts/setup_udev_rules.sh
./scripts/patch-realsense-ubuntu-lts.sh
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=false -DBUILD_GRAPHICAL_EXAMPLES=false -DBUILD_SHARED_LIBS=false -DIMPORT_DEPTH_CAM_FW=false
sudo make uninstall && make clean && make && sudo make install
sudo ldconfig
мой go сценарий build make следующий:
build_static:
export CGO_CPPFLAGS="-I/usr/local/include"
export CGO_LDFLAGS="-L/usr/lib/x86_64-linux-gnu/ -L/usr/local/lib -lrealsense2"
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build --ldflags '-extldflags "-lstdc++ -static "' -o $(BINDIR)main_static -v
У меня очень небольшой опыт работы с проектами на c ++ и конфигурациями сборки.
Как собрать бинарный файл c go с realsense?