網(wǎng)站首頁 編程語言 正文
1 abseil是做什么的
Abseil是C ++庫代碼的開源集合,旨在增強(qiáng)C ++標(biāo)準(zhǔn)庫。Abseil庫代碼是從Google自己的C ++代碼庫中收集的,已經(jīng)過廣泛測試并在生產(chǎn)中使用,并且與我們?nèi)粘>幋a工作中所依賴的代碼相同。
在某些情況下,Abseil提供了C ++標(biāo)準(zhǔn)中缺少的內(nèi)容;在其他情況下,Abseil提供了針對標(biāo)準(zhǔn)的替代方法,以滿足我們通過在Google代碼庫中的使用而發(fā)現(xiàn)的特殊需求。我們會在我們提供給您的庫代碼中清楚地表示這些情況。Abseil并不意味著要成為標(biāo)準(zhǔn)庫的競爭對手。
參見:如何評價 Google 開源其 C++ 基礎(chǔ)庫 Abseil?
2 在編譯的時候遇到abseil錯誤怎么辦
multiple rules generate abseil
等其他與abseil相關(guān)的錯誤
這里參照:cartographer中abseil庫依賴改造
cartographer中abseil的原生在線依賴
cartographer/blob/master/cmake/modules/FindAbseil.cmake#L66
ExternalProject_Add(${ABSEIL_PROJECT_NAME}
PREFIX ${ABSEIL_PROJECT_NAME}
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
GIT_TAG 7b46e1d31a6b08b1c6da2a13e7b151a20446fa07
INSTALL_COMMAND ""
BUILD_COMMAND ${CMAKE_COMMAND} --build "${ABSEIL_PROJECT_BUILD_DIR}"
CMAKE_CACHE_ARGS "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON;-DBUILD_TESTING:BOOL=OFF;-DCMAKE_BUILD_TYPE:STRING=Release"
BUILD_BYPRODUCTS "${ABSEIL_LIBRARY_PATH};${ABSEIL_DEPENDENT_LIBRARIES}"
)
會在ros的工作空間下的build_isolated下下載編譯,并最后安裝在install_isolated, carto_grapher_ros會依賴它。
3 記錄 :
1 安裝abseil
set -o errexit
set -o verbose
git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
mkdir build
cd build
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \
..
ninja
sudo ninja install
cd /usr/local/stow
sudo stow absl
2 cartographer中
/src/cartographer/CMakeLists.txt
CMakeList.txt 第1處:
find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)
CMakeList.txt 第2處:#默認(rèn)的庫文件是 standalone_absl
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
absl::base
absl::synchronization
absl::strings
absl::flat_hash_map
absl::numeric
absl::flags)
/src/cartographer/cartographer-config.cmake.in 1處
find_package(Abseil ${QUIET_OR_REQUIRED_OPTION}) Abseil 改為 absl
3 cartographer_ros中
/src/cartographer_ros/cartographer_ros/CMakeLists.txt
find_package(Abseil REQUIRED) -->find_package(absl REQUIRED)
4 cartographer_rviz中
/src/cartographer_ros/cartographer_rviz/CMakeLists.txt
find_package(Abseil REQUIRED) -->find_package(absl REQUIRED)
4
重新編譯
另外如果在package里面想要調(diào)用同workspace其他的package
1.在Cmakelists.txt 里面
set(PACKAGE_DEPENDENCIES
xxxx
)
2.在package.xml中
<depend>xxxx</depend>
原文鏈接:https://blog.csdn.net/u010647296/article/details/125897259
相關(guān)推薦
- 2024-03-10 【Redis】Redis中大key怎么處理?
- 2023-01-17 pytorch?geometric的GNN、GCN的節(jié)點分類方式_python
- 2022-04-09 C#實現(xiàn)計算器精簡版_C#教程
- 2022-06-22 android實現(xiàn)注冊登錄程序_Android
- 2022-04-17 react 制作一個 從頂部劃出的浮層。demo
- 2022-08-08 python中Pytest常用的插件_python
- 2022-07-15 Python中五種實現(xiàn)字符串反轉(zhuǎn)的方法_python
- 2022-08-16 python上下文管理器協(xié)議的實現(xiàn)_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支