在交叉编译时我必须对 C++ 库做什么?

2024-02-04

这是我的配置的编译器部分:

IF(UNIX)
    ## Compiler flags

    # specify the cross compiler
    SET(CMAKE_C_COMPILER   /home/username/projects/buildroot/output/host/usr/bin/arm-linux-gcc)
    SET(CMAKE_CXX_COMPILER /home/username/projects/buildroot/output/host/usr/bin/arm-linux-g++)

    if(CMAKE_COMPILER_IS_GNUCXX)
        set(CMAKE_CXX_FLAGS "-O3")
        set(CMAKE_EXE_LINKER_FLAGS "-lsqlite3 -lrt -lpthread")
    endif()

    target_link_libraries(complex
      ${Boost_FILESYSTEM_LIBRARY}
      ${Boost_SYSTEM_LIBRARY})
ENDIF(UNIX)

有3个问题:-lsqlite3 -lrt -lpthread

我必须如何为我的架构制作它们并在此处指定?在我以某种方式为我的架构重新编译它们之后,如何设置(使用 set?)编译库的路径?


如果您想使用 CMake 进行交叉编译,您确实应该使用工具链文件。请参阅CMake 维基 http://www.cmake.org/Wiki/CMake_Cross_Compiling进行介绍。为了使用第三方库(即不包含在交叉编译工具链中),您也需要交叉编译它们。

Edit:由于您使用的是buildroot工具链,因此您可以使用已经包含的CMake工具链文件。只要通过-DCMAKE_TOOLCHAIN_FILE=/home/username/projects/buildroot/output/toolchainfile.cmake调用 CMake 时。无需设置CMAKE_C_COMPILER and CMAKE_CXX_COMPILER在你的CMakeLists.txt文件。另外,设置CMAKE_CXX_FLAGS and CMAKE_EXE_LINKER_FLAGS被认为是非常糟糕的做法。

想必您在构建 buildroot 工具链时已经构建了 sqlite3,因此您可以像任何其他库一样使用它。 IE:

find_path(SQLITE3_INCLUDE_DIR sqlite3.h)
find_library(SQLITE3_LIBRARY sqlite3)
if(NOT SQLITE3_INCLUDE_DIR)
  message(SEND_ERROR "Failed to find sqlite3.h")
endif()
if(NOT SQLITE3_LIBRARY)
  message(SEND_ERROR "Failed to find the sqlite3 library")
endif()

find_package(Threads REQUIRED)

# ...

target_link_libraries(complex
  ${Boost_FILESYSTEM_LIBRARY}
  ${Boost_SYSTEM_LIBRARY}
  ${SQLITE3_LIBRARY}
  ${CMAKE_THREAD_LIBS_INIT}
  rt)

最后不要设置CMAKE_CXX_FLAGS to -O3。用户应该通过-DCMAKE_BUILD_TYPE=Release配置项目时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在交叉编译时我必须对 C++ 库做什么? 的相关文章

  • 有没有办法为向量采用内存资源?

    我已经开始在我的项目中使用 pmr allocators 并且我已经看到使用它们带来了很多性能提升和优势 我使用的分配器与我在下面的简单示例中展示的非常相似 include
  • .Net Core 中 String 默认不可序列化吗?

    我正在查看其他的 Fortify 静态分析安全测试 SAST 扫描报告 以识别和抑制误报 应用程序框架是C NET Core SAST 报告部分内容如下 Method1 在第 111 行将不可序列化的对象存储为 HttpSessionSta
  • 请求的资源不支持 HTTP 方法“GET”

    我的路线配置正确 并且我的方法具有装饰标签 我仍然收到 请求的资源不支持 HTTP 方法 GET 消息 System Web Mvc AcceptVerbs GET POST System Web Mvc HttpGet public st
  • 在静态断言和运行时错误之间自动选择

    我有一个执行除法并检查对齐的宏 define BYTES TO WORDS x CHECK ALIGNMENT x 2 x 2 我想实施CHECK ALIGNMENT作为一个总是返回 1 的宏 并且如果满足以下条件则触发错误x不除以 2 宏
  • System.MissingMethodException:找不到方法?

    以前工作的 ASP NET WebForms 应用程序现在抛出此错误 System MissingMethodException 找不到方法 The DoThis方法位于同一个类上 它应该可以工作 我有一个这样的通用处理程序 public
  • 如何使用 saxon 将文档类型参数传递给 xslt?

    对于发送原子数据类型将使用类似 transformer SetParameter new QName customXml new XdmAtomicValue true 如何将 XML Node 作为参数从 C 传递给 XSLT 你能帮我么
  • ASP .NET MVC 5 - 客户地址一对一关系

    我在这里查看了论坛 实际上发现了一些类似的问题 但不是相同的问题 类似的解决方案没有给我正确的答案 我正在使用实体框架和代码优先方法来处理 ASP NET MVC 5 我想建立客户 gt 地址一对一关系的模型 我建模的是 客户等级 publ
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • 模拟 EF core dbcontext 和 dbset

    我正在使用 ASP NET Core 2 2 EF Core 和 MOQ 当我运行测试时 我收到此错误 消息 System NotSupportedException 非虚拟 可在 VB 中重写 成员上的设置无效 x gt x Movies
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • 混合 VS2012 平台工具集

    我们正在从 VS2005 切换到 VS2012 update 2 我们正在构建大量 主要是控制台 本机 C 无 MFC ATL 可执行文件 它们使用几个常见的静态链接库 这些可执行文件主要在 Win7 计算机上运行 但有些也部署在较旧的 X
  • DLL 需要访问其应用程序的符号

    在 C 中 DLL 是否可以访问加载它的应用程序的某些符号 我有一个加载插件 dll 的应用程序 这些插件需要访问该应用程序的某些API 是否可以在不创建共享此 API 的新 DLL 的情况下实现此目的 函数指针结构适合这种情况吗 示例 主
  • C# 列表框 ObservableCollection

    我正在尝试使用 ListBox DataSource ObservableCollection 但是我不知道如何在 OC 更新时让列表框自动更新 我可以在 OC 上挂接 CollectionChanged 事件 但是我需要对列表框执行什么操
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • 那里有更好的 DateTime.Parse 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有一个库 付费或免费 能够处理比 DateTime Parse 使用的更常见的日期时间格式 能够
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • g++4.9 不支持 std::align

    在学习对齐问题等时 我意识到我的 g 4 9 macports OS X 实现不支持std align 如果我尝试编译 使用 std c 11 此示例代码来自http www cplusplus com reference memory a
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • 为什么没有参数的函数(与实际函数定义相比)可以编译?

    我刚刚看到某人的 C 代码 我很困惑为什么要编译它 有两点我不明白 The 函数原型与实际函数定义相比没有参数 中的参数函数定义没有类型 include

随机推荐

  • 对于登录应用程序,我将如何检查密码的 sha1 值?

    我将如何添加一个函数来检查数据库中用户 sha1 密码值
  • 如何从编译的二进制文件 (.so) 中删除字符串

    如何从编译的二进制文件中删除字符串 对其进行混淆 目标是避免人们阅读内部函数 方法的名称 它是使用 NDK 工具 包括 GCC 从 Android 的 C 代码编译的动态库 so 我编译用 O3并已经使用arm eabi strip g m
  • 函数式编程中的可变性

    首先我是 Haskell 新手 我读过这个 高度可变域中的不可变函数对象 https stackoverflow com questions 166379 immutable functional objects in highly mut
  • PHP Pear 安装程序停留在 21%

    我尝试在我的网站空间上安装 PHP Pear 我从以下位置上传了安装程序文件http pear php net go pear http pear php net go pear 我启动了安装程序 除了每次都卡在 21 之外 一切似乎都正常
  • 以太坊 Web3.js:内在 Gas 太低

    在过去的几天里 我一直在尝试在以太坊测试网 Rinkeby 上发送一笔交易 无论我将 Gas 增加多少 都会不断收到此错误 未处理的拒绝错误 返回错误 内在气体太低 我发送的数据是 0x7b22416e7377657273223a5b7b2
  • 节点expressJwt除非指定id路由

    我们正在使用expressJwt库 我希望能够排除GET对于以下路线api items id但不包括任何看起来像的路线api items id special action 到目前为止 我只能排除所有具有 id 下面是我们如何实现排除GET
  • 有没有办法免费获得 Borland Turbo C++ 编译器的古董版本?

    我正在寻找旧版本的 Borland Turbo C 编译器 但我必须以合法的方式得到它 有人听说过这种旧编译器有折扣吗 EDIT 我想出于教育目的公开我的旧源代码 但是它们只能在这个旧编译器上编译 我想向我的博客读者展示他们在学习新语言时应
  • 如何找到netbeans中使用的ant版本?

    我正在尝试这个教程Spring MVC Netbeans https sites google com site springmvcnetbeans step by step 我想知道 Windows 上的 netbeans 使用的是哪个版
  • D3.js v4 - 如何添加具有默认滚轮鼠标缩放行为的缩放按钮

    这个问题涵盖了与已经提出和回答的主题完全相同的主题 D3 js 如何添加具有默认滚轮缩放行为的缩放按钮 https stackoverflow com questions 25333309 d3 js how to add zoom but
  • GetObject("SAPGUI") 返回什么类型的对象?

    长话短说 如果我在初始化脚本中正确声明变量 则无法附加到 SAPFEWSELib GuiApplication 的 连接 对象 集合 MyApplication Children 0 是空的 但如果我注释掉声明块 它就可以工作 长话短说 我
  • 预构建事件后忽略 App.Config

    我有一个包含多个项目和多个开发人员的解决方案 每个开发人员都有自己的环境 当然 为了管理每个环境之间的连接字符串 我为每个环境创建了几个 app config 文件 app config dev app config qa 等 预构建事件只
  • Google Maps API v3:从数组添加标记不起作用

    首先感谢您考虑回答这个问题 非常感谢 我使用以下代码创建了一个地图 效果非常好 function initialize var mapOptions zoom 5 center new google maps LatLng 48 160 6
  • 模板不存在 Django

    我的 Django 模板位置列出为 python Lib site packages django contrib auth templates 在我看来我有 return render to response hello html nam
  • 通过代码 tradeview/pine 脚本隐藏图表、数量和信号标签上的交易

    每次我更新策略代码时 样式都会重置 这意味着 图表上的交易 信号标签 Quantity 被重置为显示 有没有办法覆盖该行为 以便我可以隐藏 图表上的交易 非常感谢您对这个看似微不足道的问题的帮助 不 默认情况下没有禁用它们的功能 前段时间我
  • MySQL 索引上的正则表达式

    我有查询在 where 子句中有多个正则表达式 where 子句中包含的列已被索引 但查询没有使用索引 MySql 正则表达式是否会导致使用索引 如果没有 解决方法是什么 不可以 正则表达式查找不能使用索引 如果您应用正则表达式的对象是索引
  • vectorize_sequences 的标准实现

    In 弗朗索瓦 肖莱 https fchollet com s 使用 Python 进行深度学习 https www manning com books deep learning with python 出现这个函数 def vector
  • 如何从类库中读取“System.ServiceModel”配置节组?

    有没有办法访问 System ServiceModel 客户端配置 即基于类 dll 项目中的app config ConfigurationManager GetSection string 允许您从执行应用程序的 app config
  • 空格键:如何在 if 语句中使用 and/or

    我有以下代码 div class div 如何在空格键模板的 if 条件中使用 AND OR 空格键无法处理逻辑表达式 因此您需要创建一个助手来为您处理计算 其实你可以实现and具有嵌套 if 的功能如下 if condition1 if
  • 如何在 Wix 安装程序中添加 url [LINK]

    我正在使用 Wix 工具集版本 3 7 我想在欢迎屏幕描述中添加一些指向产品网站的链接 如何实现这一目标 我认为你可以通过做这样的事情来做到这一点
  • 在交叉编译时我必须对 C++ 库做什么?

    这是我的配置的编译器部分 IF UNIX Compiler flags specify the cross compiler SET CMAKE C COMPILER home username projects buildroot out