#linux #ubuntu #flatbuffers
#linux #ubuntu #плоские буферы
Вопрос:
если мы установим плоские буферы в Linux Ubuntu, мы не сможем использовать команду shortc flatc из любого места для компиляции, как мы можем это сделать?
Например: я хочу использовать в package.json некоторую команду «flatc -o path /src/app / core / providers /flatbuffers …..»
для этого недостаточно установить плоские буферы, нам также необходимо выполнить ряд дополнительных манипуляций — добавить символическую ссылку и так далее.
Комментарии:
1. Привет! Приведите несколько примеров того, что вы пытались установить программное обеспечение, какого поведения вы ожидали (рабочего) и каков был результат (не работает).
2. Этот вопрос не имеет ничего общего с плоскими буферами, поскольку ответ одинаков для любого двоичного файла, который вы компилируете самостоятельно в Linux. И ваш ответ не очень хорош, поскольку ваши системные каталоги ссылаются на папку git. Другим вариантом может быть изменение ПУТИ или копирование.. Честно говоря, вам лучше не иметь его доступным повсюду, поскольку для использования его выходных данных вам в любом случае понадобится остальная часть каталога. С таким же успехом можно использовать скрипты, которые указывают на каталог FlatBuffers.
Ответ №1:
решение для flatc и плоских буферов для Linux Ubuntu :
- выберите «папка для установки»
- компакт-диск «папка для установки»
- git clonehttps://github.com/google/flatbuffers.git
- плоские буферы cd
- cmake -G «Unix Makefiles» (установите cmake при необходимости)
- сделать
- sudo ln -s /полный путь к плоскому буферу /flatbuffers /flatc /usr /local/bin /flatc
- chmod x /полный путь к плоскому буферу/flatbuffers /flatc
- запускайте в любом месте как «flatc»
Комментарии:
1. У меня сработало, это тоже первый результат поиска Google. Мне также нужно было скопировать
include
каталог в/usr/include
, чтобы иметь возможность#include <flatbuffers/flatbuffers.h>
.2. 7. sudo ln -s $(реальный путь $(найти. -имя «flatc»)) /usr/local/bin/flatc
3. возможно, make install между make и созданием ссылки также поместит файлы заголовков в нужное место и т.д.
4. В моем случае мне пришлось скомпилировать с
cmake -G "Unix Makefiles" .
(возможно, из-за старой версии cmake)5. Обратите внимание, что Ubuntu упаковывает плоские буферы для версии 20.04 (и, возможно, другие). Смотрите ответ @Gea-Suan Lin ниже.
sudo apt install -y flatbuffers-compiler
Ответ №2:
Ответ Александра касается только двоичного файла flatc.
Чтобы собрать и установить все плоские буферы из исходного кода с помощью cmake, следуйте инструкциям здесь:
- Клонируйте репозиторий amp;
cd flatbuffers
- Генерировать файлы сборки для Linux ubuntu
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
- Скомпилировать
make
- Установить
sudo make install
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/include/flatbuffers
-- Installing: /usr/local/include/flatbuffers/stl_emulation.h
-- Installing: /usr/local/include/flatbuffers/flexbuffers.h
-- Installing: /usr/local/include/flatbuffers/minireflect.h
-- Installing: /usr/local/include/flatbuffers/flatbuffers.h
-- Installing: /usr/local/include/flatbuffers/pch
-- Installing: /usr/local/include/flatbuffers/pch/flatc_pch.h
-- Installing: /usr/local/include/flatbuffers/pch/pch.h
-- Installing: /usr/local/include/flatbuffers/flatc.h
-- Installing: /usr/local/include/flatbuffers/code_generators.h
-- Installing: /usr/local/include/flatbuffers/util.h
-- Installing: /usr/local/include/flatbuffers/grpc.h
-- Installing: /usr/local/include/flatbuffers/base.h
-- Installing: /usr/local/include/flatbuffers/registry.h
-- Installing: /usr/local/include/flatbuffers/hash.h
-- Installing: /usr/local/include/flatbuffers/reflection_generated.h
-- Installing: /usr/local/include/flatbuffers/idl.h
-- Installing: /usr/local/include/flatbuffers/reflection.h
-- Installing: /usr/local/lib/cmake/flatbuffers/FlatbuffersConfig.cmake
-- Installing: /usr/local/lib/cmake/flatbuffers/FlatbuffersConfigVersion.cmake
-- Installing: /usr/local/lib/libflatbuffers.a
-- Installing: /usr/local/lib/cmake/flatbuffers/FlatbuffersTargets.cmake
-- Installing: /usr/local/lib/cmake/flatbuffers/FlatbuffersTargets-release.cmake
-- Installing: /usr/local/bin/flatc
-- Installing: /usr/local/lib/cmake/flatbuffers/FlatcTargets.cmake
-- Installing: /usr/local/lib/cmake/flatbuffers/FlatcTargets-release.cmake
Ответ №3:
В Ubuntu 20.04 (focal) он уже находится в репозитории apt (https://packages.ubuntu.com/focal/flatbuffers-compiler ) таким образом, вы можете просто установить его:
sudo apt update
sudo apt install -y flatbuffers-compiler
А для Ubuntu 18.04 (bionic) вы можете использовать PPA (https://launchpad.net /~hnakamur/ archive/ubuntu/плоские буферы):
sudo apt-add-repository ppa:hnakamur/flatbuffers
sudo apt update
sudo apt install -y flatbuffers-compiler
Оба немного устарели (1.11), но если вы не используете новейшие функции, то это должно быть достаточно надежно.
Комментарии:
1. Спасибо! Это определенно лучше, чем создавать его вручную и вручную управлять последующими обновлениями.
Ответ №4:
Вот файл CMake, который немного упрощает жизнь. Эти команды cmake загрузят flatbuffer из репозитория git и установят в общесистемном доступе Linux. Для установки после сборки запустите «sudo make install».
———-Сохраните приведенный ниже контент в CMakeLists.txt файл и запустите cmake————
cmake_minimum_required(VERSION 3.11)
cmake_policy(SET CMP0048 NEW)
project(flatbuffers-external
VERSION 2.0.0
DESCRIPTION "Flatbuffers Build"
)
option(FLATBUFFERS_BUILD_TESTS "Enable the build of tests and samples." OFF)
option(FLATBUFFERS_BUILD_FLATC "Enable the build of the flatbuffers compiler"
OFF)
option(FLATBUFFERS_STATIC_FLATC "Build flatbuffers compiler with -static flag"
OFF)
option(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" OFF)
include(FetchContent)
FetchContent_Declare(
flatbuffers_cpp
GIT_REPOSITORY https://github.com/google/flatbuffers.git
GIT_TAG v2.0.0
PREFIX "${PROJECT_SOURCE_DIR}/tp"
SOURCE_DIR "${PROJECT_SOURCE_DIR}/tp/fb"
BINARY_DIR "${PROJECT_SOURCE_DIR}/tp/fb-build"
)
FetchContent_MakeAvailable(flatbuffers_cpp)
Ответ №5:
Для Windows вы можете загрузить zip-папку сhttps://github.com/google/flatbuffers/releases и извлечь его.
Удалите предыдущие переменные пути среды для flatc (если таковые имеются) и добавьте извлеченный путь, где flatc.exe присутствует.