cmake 实现交叉编译注意事项
(1)确保安装交叉编译工具安装成功
在终端输入arm-linux-gnueabihf-g++ -v 或 arm-linux-gnueabihf-gcc -v ,能看到相应交叉C编译器和C++编译器的版本信息;
(2)很多文件时,需要采用cmake管理,这时就需要将以往的gcc编译器更改为交叉编译器,执行set 文件CMakeLists.txt中的CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER变量,也可以通过ADD_DEFINITIONS()指令进行添加;
指定C编译器:SET(CMAKE_C_COMPILER "编译器绝对路径")
指定C++编译器:SET(CMAKE_C_COMPILER "编译器绝对路径")
以上以及实现编译器的调用,以下为自己吐血反思:
由于不习惯看大写英文,对cmake学艺不精,造成了cmake大小写不区分,其实变量和参数是区分大小写的;然后CMAKE_C_COMPILER 如果用小写,那么该编译选项就设置不成功,于是很简单的切换编译器就被自己脑洞打开,加上部分博客的迷惑,什么编译器复制到/opt...、打开cmake gui、tools....,差点遁入泥炭。还好在吃饭时悟出一个道理,camke与编译器之间根本没关系,就是一个指定的过程,cmake是老板,编译器是搬砖的,指导谁去搬砖哪有那么困难,于是跳出博客泥炭。开始在camke上寻找答案,不具体且...的官方文档,蒙圈。最后在cmake实践这本电子书中,从看compiler相关介绍,无意看到依据变量与参数区分大小写。麦嘎!回去一改,ok了
make以后,用 (file 生成可执行文件) 这条指令运行以后,ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV)......,醒目的ARM不禁让人无奈一笑,以此记之,记录被习惯于用小写英文所踩的坑。
cmake 实现交叉编译注意事项的更多相关文章
- 使用 cmake 进行交叉编译
cmake 因为“又”要额外学一门语言而被诟病,但这并不妨碍越来越多私人项目用 cmake 来管理:autoconfig 确实是更好的发行工具,但用 cmake 管理项目显然更加的容易.如果要应用这些 ...
- Cmake的交叉编译
http://www.cmake.org/Wiki/CMake_Cross_Compiling
- CMake交叉编译配置
很多时候,我们在开发的时候是面对嵌入式平台,因此由于资源的限制需要用到相关的交叉编译.即在你host宿主机上要生成target目标机的程序.里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等 ...
- c++/cmake /Android NDK 动态链接库交叉编译笔记
项目使用cmake管理,由于项目的需要,核心代码要求跨 Linux/Windows/Android 三平台.Windows和Linux都好说,但Android NDK费了一番功夫还是没有解决.临时的解 ...
- ubuntu下cmake 使用clang
安装llvm.clang sudo apt-get install llvm clang clang命令会在/usr/bin/clang cmake配置交叉编译链 建立linux.toolchain. ...
- CMake最好的学习资料
本文为转载,阅读不友好,请先查看原文:https://blog.gmem.cc/cmake-study-note 收下为原文内容================> 基础知识 CMake简介 CM ...
- 全栈交叉编译X86完成过程经验分享
1 CMAKE的交叉编译配置 主要是C和C++编译器的配置和SYSROOT的配置. set (CMAKE_SYSTEM_NAME "Linux") set (CMAKE_SYSTE ...
- [转]第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV
仅供参考,还未运行程序,理解部分有误,请参考英文原版. 绿色部分非文章内容,是个人理解. 转载请注明:http://blog.csdn.net/raby_gyl/article/details/174 ...
- 腾讯云CMQ消息队列在Windows环境下的使用
版权声明:本文由李少华原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/100 来源:腾云阁 https://www.qclo ...
- CMakefile for Cross-Platform Compling - 1
cmake可以自动侦测目标系统,通常编译时候包含的文件和链接的库都不是本地的文件. Demo #toolchain cmake file SET(CMAKE_SYSTEM_NAME Linux) SE ...
随机推荐
- 越权检测 burp插件 autorize 使用
Autorize 官方描述 Autorize 是 Burp Suite 的自动授权强制检测扩展.它是由应用程序安全专家 Barak Tawily 用 Python 编写的.Autorize 旨在通过执 ...
- 蓝桥杯训练赛二-问题 A
题目描述 用简单素数筛选法求N以内的素数. 输入 N 输出 2-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 ...
- nacos 1.4.2 建立集群,公司启动linux服务器常用命令
2022-7-29 编写micro自动处理脚本,并加入了守护精灵进程 先启动prop1 服务器(xx.1xx.165.186) 再启动prop2服务器 (xx.1xx.174.173) ####### ...
- vue高级进阶( 二 ) 8种组件通信详解
vue高级进阶( 二 ) 8种组件通信详解 猛兽总是独行,牛羊才成群结队. -------鲁迅 vue组件通信的重要性无需多言...但是你肯定没有全部掌握,所以这第二篇文章应运而生 props和$ ...
- php echo print
echo print都是语言结构,都不是函数,但echo没有返回值,print有. echo print
- android 编译错误::Extension with name 'kotlin' does not exist
An exception occurred applying plugin request [id: 'kotlin-kapt']> Failed to apply plugin 'kotlin ...
- iOS证书签名
苹果官方有一对密钥,即私钥和公钥,私钥在苹果后台,公钥在iOS系统中(如iPhone手机在出厂后,其中就保存有苹果官方的公钥):在Mac系统打包app时也会生成一对密钥(私钥.公钥),并保存在钥匙串中 ...
- oracle 高级队列
转载:http://www.idevelopment.info/data/Oracle/DBA_tips/Advanced_Queuing/AQ_2.shtml Overview This artic ...
- 最简单的asp验证码
<%Public Function BornVerifyCode() Randomize '设置随机因子 BornVerifyCode=Mid((Rnd * 10 ...
- PO 锁
SAP NetWeaver Administrator->可用性和监控->资源监控->锁