c++ - 使用 cmake for arm 与静态链接的 boost 库交叉编译

标签 c++ linux boost cmake cross-compiling

我有什么:

  • 一个使用boost库的c++项目
  • 该项目是使用 cmake 构建的,并且链接是动态 boost 的
  • 一台 x64 的 linux 机器
  • 带有 arm 处理器和 linux 的开发板

我想要的:

一个 CMake 项目执行以下操作:

  • 一个 x64 架构构建(用于 gtest 和本地开发)
  • 另一个 arm 架构的构建
  • 都带有静态链接的 boost 库

这是否可能,如果可能,如何实现?

恕我直言,主要问题是告诉 cmake,对于第二个构建,它应该使用另一个(这次是 arm)预编译的 boost 库来链接。不知道该怎么做。

最佳答案

假设您使用 find_package(Boost ..) 来搜索和选择 boost 组件(正如您应该做的那样),如果我答对了您的问题,您只需在两个不同的目录中构建(就像您最喜欢的那样)可能已经这样做了)并在配置之前以不同方式设置 CMake 变量BOOST_ROOT

您也可以稍后设置 Boost_LIBRARIES,以防其余部分相等。

要告诉 CMake 静态链接 Boost,只需将 Boost_USE_STATIC_LIBS 设置为 ON

关于c++ - 使用 cmake for arm 与静态链接的 boost 库交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20816208/

相关文章:

c++ - 调用栈上的单例类

c++ - Qt C++编译完成,程序不显示

c - 无法在 kgdb 设置中的某些函数上设置断点

java - 如何从 Windows 工作区复制所有 Java 代码并在 Linux Eclipse 工作区中使用它

c++ - 在单独的二进制文件中 boost XML 序列化保存集合

c++ - 为什么在Boost中不使用Execute-Around Idiom作为用于线程安全访问对象的智能指针?

c++ - 如何将bitset变量的内容存储到c中的uint32

c++ - Kamada-Kawai 布局的停止条件

linux - git - Windows + linux 双启动中的 CRLF 问题

c++ - 如何在 on_entry 中使用 Boost.MSM is_flag_active?