当前位置: 首页 > wzjs >正文

企业网站模板 首页大图里水哪里做有做网站

企业网站模板 首页大图,里水哪里做有做网站,WordPress国外打赏,北京市住房建设投资中心网站最近linux编译了ceres库,因为要涉及到一个程序源代码的编译,但是反复测试,一直各种错误,所以一个个问题排除; 虽然前面ceres库编译成功了,但是版本自定义扔进去的,所以在进行代码编译的时候各种报错。 参考…

最近linux编译了ceres库,因为要涉及到一个程序源代码的编译,但是反复测试,一直各种错误,所以一个个问题排除;
虽然前面ceres库编译成功了,但是版本自定义扔进去的,所以在进行代码编译的时候各种报错。
参考链接:
1、abseil库的安装-Ubuntu18.04
2、Ubuntu安装使用Ceres Solver

我的相关博客:
Arm Linux ceres库编译(树莓派5上编译)
x86 Linux ceres库编译(麒麟V10 SP1)

目录

  • 一、编译注意事项
    • 1.1、关于版本号
      • 1.1.1、absl版本
      • 1.1.2、ceres版本
    • 1.2、卸载及重装absl库
    • 1.3、卸载及重装ceres库
    • 1.4、absl测试代码
      • 1.4.1、Hello_basl.cpp 文件
      • 1.4.2、CMakeList.txt文件
      • 1.4.3、编译方法
      • 1.4.4、成功样例
    • 1.5、ceres测试代码
      • 1.5.1、test_ceres.cpp 文件
      • 1.5.2、CMakeLists.txt文件
      • 1.5.3、编译步骤
      • 1.5.4、成功样例
      • 1.5.5、失败案例

一、编译注意事项

1.1、关于版本号

编译ceres时候要注意版本号,很多错误都是由于版本差异太大导致源代码兼容问题,所以通过版本可以根据发布时间确定依赖环境的版本号,要不然即使编译成功了,后面在代码编译的时候也会出现兼容性问题,导致代码编译失败

1.1.1、absl版本

首先进入github仓库:https://github.com/abseil/abseil-cpp
点击Tags

在这里插入图片描述

1.1.2、ceres版本

按照这个思路,ceres库编译的时候可以先查一下ceres库的版本,根据发布时间,下载时间相近的库进行编译,环境问题应该可以解决
ceres github仓库:https://github.com/ceres-solver/ceres-solver

在这里插入图片描述

所以这里我下载了两套*.zip 代码重新编译
ceres-solver-2.2.0.zip
abseil-cpp-20230125.3.zip 或 abseil-cpp-20240722.1.zip
我虚拟机上使用 abseil-cpp-20240722.1.zip 和ceres 2.2.0 配套编译成功

1.2、卸载及重装absl库

卸载absl
sudo rm -rf /usr/local/lib/libabsl*
sudo rm -rf /usr/local/include/absl
sudo rm -rf /usr/local/lib/cmake/absl
sudo rm -f /usr/local/lib/pkgconfig/absl.pc验证absl卸载干净了
ls /usr/local/lib | grep libabsl
ls /usr/local/include | grep absl重装absl库
cd abseil-cpp-20240722.1
mkdir build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make 
sudo make install

注意,这里我没有设置 -DCMAKE_CXX_STANDARD=17 ,这段话的意思是使用C++17进行编译,如果这么设置在以后编译源代码使用C++11的时候就会编译出错,必须使用C++17,比较麻烦,所以这里我尝试去除掉,编译没有什么问题,在后面使用也没有什么问题

1.3、卸载及重装ceres库

卸载ceres库
sudo rm -rf /usr/local/include/ceres
sudo rm -rf /usr/local/lib/libceres*
sudo rm -rf  /usr/local/lib/cmake/Ceres验证ceres库是否存在
ls /usr/local/include | grep ceres   # 应无输出
ls /usr/local/lib | grep libceres   # 应无输出重装ceres库
cd ceres-solver-2.2.0
mkdir build
cd build#不编译GTest库
cmake .. -DBUILD_TESTING=OFF 
make
sudo make install

1.4、absl测试代码

1.4.1、Hello_basl.cpp 文件

#include <iostream>
#include <absl/strings/string_view.h>using namespace std;int main()
{absl::string_view sv = "hello world";cout<<sv<<endl;return 0;
}

1.4.2、CMakeList.txt文件

cmake_minimum_required(VERSION 3.16)
project(hello_absl)find_package(absl REQUIRED COMPONENTS strings base str_format)  # 声明依赖项‌:ml-citation{ref="1,4" data="citationList"}
add_executable(hello_absl Hello_basl.cpp)
target_link_libraries(hello_absl absl::strings absl::base absl::str_format) 

1.4.3、编译方法

cmake .
make

1.4.4、成功样例

在这里插入图片描述

失败样例搞丢了,就是出现各种错误

1.5、ceres测试代码

1.5.1、test_ceres.cpp 文件

#include <ceres/ceres.h>
#include <iostream>// 定义一个代价函数
struct CostFunctor {template <typename T>bool operator()(const T* const x, T* residual) const {residual[0] = 10.0 - x[0];return true;}
};int main(int argc, char** argv) {google::InitGoogleLogging(argv[0]);// 初始值double initial_x = 5.0;double x = initial_x;// 构建最小二乘问题ceres::Problem problem;ceres::CostFunction* cost_function =new ceres::AutoDiffCostFunction<CostFunctor, 1, 1>(new CostFunctor);problem.AddResidualBlock(cost_function, nullptr, &x);// 配置并运行求解器ceres::Solver::Options options;options.linear_solver_type = ceres::DENSE_QR;options.minimizer_progress_to_stdout = true;ceres::Solver::Summary summary;ceres::Solve(options, &problem, &summary);std::cout << summary.BriefReport() << "\n";std::cout << "x : " << initial_x << " -> " << x << "\n";return 0;
}

1.5.2、CMakeLists.txt文件

cmake_minimum_required(VERSION 3.16)
project(hello_world)set(absl_DIR "/usr/local/lib/cmake/absl")
find_package(Ceres REQUIRED)
message("Ceres: " ${CERES_LIBRARIES})
message("Ceres_DIR: " ${Ceres_DIR})include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/usr/local/include/usr/include//usr/include/eigen3
)set(CMAKE_BUILD_TYPE "Debug") # 默认是Release模式,设置为Debug才能调试
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 设置可执行文件的输出目录add_executable(hello_world test_ceres.cpp)target_link_libraries(${PROJECT_NAME} PRIVATE Ceres::ceres)

1.5.3、编译步骤

cmake .
make

make执行后会在当前目录生成./bin/hello_world程序

1.5.4、成功样例

在这里插入图片描述

1.5.5、失败案例

那个成功案例是解决了这个失败后,这里的一个号是编译ceres时强制设置进去的,所以helloworld都编译不过去

在这里插入图片描述
根据版本章节,根据ceres库的版本选择配套的absl版本,不用强制指定版本号也可以顺利编译过去,该问题自然消失了。
——辉 2025.4.16


文章转载自:

http://EjpOzwpx.hhrpy.cn
http://NPOuFYDF.hhrpy.cn
http://vLgPmLxE.hhrpy.cn
http://pwrNb8Zp.hhrpy.cn
http://AqDxzw8C.hhrpy.cn
http://fxy9aR3w.hhrpy.cn
http://1JhGHrR3.hhrpy.cn
http://SMSFXBMs.hhrpy.cn
http://7iUd8LSy.hhrpy.cn
http://yutWpHm0.hhrpy.cn
http://KQU21jAG.hhrpy.cn
http://4bKSMHy0.hhrpy.cn
http://DUkQQerO.hhrpy.cn
http://nI6OHipD.hhrpy.cn
http://WWZf054a.hhrpy.cn
http://eAgsf3Fe.hhrpy.cn
http://XAyLtfps.hhrpy.cn
http://MJ2BVg7d.hhrpy.cn
http://tqLpyHD8.hhrpy.cn
http://J9kYcKg0.hhrpy.cn
http://nGcT4tAE.hhrpy.cn
http://aPKHhe5j.hhrpy.cn
http://MXVRaLpZ.hhrpy.cn
http://QfXaMdiI.hhrpy.cn
http://lrUolx7P.hhrpy.cn
http://ggLs12xt.hhrpy.cn
http://oa7voJdc.hhrpy.cn
http://w8DjWIAs.hhrpy.cn
http://bsXwZUfW.hhrpy.cn
http://RTvDCtDg.hhrpy.cn
http://www.dtcms.com/wzjs/634928.html

相关文章:

  • 杭州网站建设q479185700棒家具做网站
  • php网站开发实例教材网站建设制作做网站优化推广公司
  • 广州专业网站建设哪家好百度一下网址大全
  • 网站建设的钱计入什么科目vs怎么添加做网站
  • 绵阳top唯艺网站建设免费建站的网址
  • 自己建网站程序中国建筑设计行业网
  • 四川成都网站建设有什么平台可以推广
  • 建文帝网站建设app制作的网站
  • 百度网站建设在哪市场调研公司的最主要职能是
  • 视频网站的制作教程全案营销的案例及成功案例
  • 公司网站备案需要什么网站的域名用文字搜索怎么做
  • 北京婚恋网站哪家最好网页打不开无法访问此网站
  • 小说网站做封面要钱吗有哪些网页游戏网站
  • 南宁青秀万达网站建设做家教网站资质
  • 做网站好一点的公司沙市做网站weisword
  • 宝安做棋牌网站建设哪家技术好域名 备案号 网站的关系
  • 宁德蕉城住房和城乡建设部网站温州建设银行支行网站
  • 域名还没备案可以做网站吗重庆建筑信息网官网
  • 如何给网站续费东营网站建设制作
  • 制作企业网站的app新网站建设的工作
  • 佛山网站建设模板最新消息今天的新闻
  • 郑州h5网站建设价格怎么开发微信网站
  • 找网站做任务领q币网站营销的分类有哪些
  • 老域名做网站好吗一个网站是如何建设
  • 建设网站的一般过程专门做酒店的网站
  • 荆州哪有做网站的公司重庆网站目录
  • 房产网站加盟网站建设期末实践报告
  • 小语种网站建设要点一个网站绑定多个域名
  • 美食网站开发的难点成都专业小程序开发公司
  • 如何设置便于搜索引擎收录的网站结构wordpress 评论主题