用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例: -Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest ("-Wl"表示是传递给链接器ld的参数,而不是编译器gcc/g++的参数。) 1) 下面是因为没有指定链接参数-lz(/usr/lib/libz.so,/usr/lib/libz.a ) /usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_uncompress': /home/software/mysql-5.5.24/mysys/my_compress.c:122: undefined reference to `uncompress' /usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_compress_alloc': /home/software/mysql-5.5.24/mysys/my_compress.c:71: undefined reference to `compress' 2) 下面是因为没有指定编译链接参数-pthread(注意不仅仅是-lpthraed) /usr/local/mysql/lib/mysql/libmysqlclient.a(charset.c.o): In function `get_charset_name': /home/zhangsan/mysql-5.5.24/mysys/charset.c:533: undefined reference to `pthread_once' 3) 下面这个是因为没有指定链接参数-lrt /usr/local/thirdparty/curl/lib/libcurl.a(libcurl_la-timeval.o): In function `curlx_tvnow': timeval.c:(.text+0xe9): undefined reference to `clock_gettime' 4) 下面这个是因为没有指定链接参数-ldl /usr/local/thirdparty/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup': dso_dlfcn.c:(.text+0x4c): undefined reference to `dlopen' dso_dlfcn.c:(.text+0x62): undefined reference to `dlsym' dso_dlfcn.c:(.text+0x6c): undefined reference to `dlclose' 5) 下面这个是因为指定了链接参数-static,它的存在,要求链接的必须是静态库,而不能是共享库 ld: attempted static link of dynamic object 如果是以-L加-l方式指定,则目录下必须有.a文件存在,否则会报-l的库文件找不到:ld: cannot find -lACE 6) GCC编译遇到如下的错误,可能是因为在编译时没有指定-fPIC,记住:-fPIC即是编译参数,也是链接参数 relocation R_x86_64_32S against `vtable for CMyClass` can not be used when making a shared object 7) 下面的错误表示gcc编译时需要定义宏__STDC_FORMAT_MACROS,并且必须包含头文件inttypes.h test.cpp:35: error: expected `)' before 'PRIu64' 8) 下面是因为在x86机器(32位)上编译没有指定编译参数-march=pentium4 ../../src/common/libmooon.a(logger.o): In function `atomic_dec_and_test': ../../include/mooon/sys/atomic_gcc.h:103: undefined reference to `__sync_sub_and_fetch_4' 9) 下列错误可能是因为多了个“}” error: expected d
本专栏由Mculover666创建,主要内容为寻找嵌入式领域内的优质开源项目,一是帮助开发者使用开源项目实现更多的功能,二是通过这些开源项目,学习大佬的代码及背后的实现思想,提升自己的代码水平,和其它专栏相比,本专栏的优势在于:
st官方固件库是在寄存器操作之上的,但是使用寄存器操作的话,需要注意的地方很多,需要对照参考手册一个一个赋值,稍有不慎便会出错,所以固件库将外设的初始化封装成初始化结构体,将外设的操作封装在函数中,将寄存器赋值的操作都封装起来,我们只需要调用API就可以,这样一来既提高了开发效率,也减少了代码量,如果还不能在MDK里熟练使用固件库编程,建议先补基础~接下来,我们在上一节寄存器工程的基础上,添加固件库,使用固件库进行开发。
本文介绍了如何使用VisualStudio高效开发调试AndroidNDK,分享给大家,具体如下:
关于const的含义和使用我们之前已经讨论过了,但const限定符对于默认存储类型是有影响的。
6.4 交叉编译程序:以freetype为例 使用buildroot来给ARM板编译程序、编译库会很简单, 以后系统讲解buildroot时再使用buildroot。 现在我们还是手工交叉编译freetype,这种方法在编译、安装一些小程序时很有用。
VC6编译方法: 1.http://www.openssl.org/source/old/0.9.x/ 下载0.9.x版本 -- VC6不能完全编译最新的1.0.x,所以尽量选择0.9.x 2.安装ActivePerl 3.cmd命令运行 VC6安装目录\VC98\Bin\VCVARS32.BAT 4.以此执行下面命令
问题如下图,编译STM32H7的DSP库源码出错,原因也比较简单,要注意使用Cortex-Mx的DSP库,在包含头文件时直接添加路径Libraries\CMSIS\Include里面的头文件即可,而不需要添加Libraries\CMSIS\DSP\Include,这是因为路径Libraries\CMSIS\Include里面已经包含了DSP库的头文件。这个错误就是因为多包含了Libraries\CMSIS\DSP\Include 路径,具体为啥,可能是因为通过宏选择编译出了问题,有的不需要编译的也编译了,结果就出问题了。
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第5章 RL-USB协议栈移植(MDK AC6) 本章
方法就是打开一个.h文件拖到最后→看到如下字样的,就是库函数了 /** @defgroup GPIO_Exported_Functions
TSN是”temporal-segment-networks”的简称,是视频动作识别任务里面当前最好的方法。虽然这个结构是在ECCV2016的论文里面提出来的,代码也放出来挺长时间了,但是这个项目里面集合了Caffe, OpenCV,CUDA,CUDNN等几大神坑项目,不同版本之间的依赖、选择等问题很麻烦,因此我之前编译了好几次都没有能够编译成功。这次花了近一天的时间来重新编译了一下整个项目,虽然还是有些问题,例如MPI编译没有通过,CUDA8貌似不支持,CuDNN v5好像也不支持,但最后总算是编译通过,可以运行了。所以记录一下整个的过程,期望对自己和别人能够有所帮助。
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第4章 RL-USB移植(MDK AC5) 本章教程为大
众所周知,单片机的开发其实就是底层驱动的开发,就是控制寄存器的。随着MCU功能的强大,去配置每一个寄存器来开发的模式不太妙,毕竟不是每一款MCU的寄存器都像是51那么少的。那么就出来了固件库这样的开发模式,其实最底层也还是在配置寄存器,只不过是使用的时候是将寄存器打包处理了。就好像是库函数一样,实质上就是一种封装,没有什么神奇的地方
转载请注明原文地址:http://www.cnblogs.com/dongxiao-yang/p/4878323.html
首先下载交叉编译环境GCC,这个网上有很多,百度一下就能找到下载。比如 Sourcery G++ for ARM EABI
最近遇到应用频繁的响应缓慢,无法正常访问。帮忙一起定位原因,最后定位到的问题说起来真的是很小的细节问题,但是就是这些小细节导致了服务不稳定,真是细节决定成败。这里尝试着来分享下,希望对大家有所帮助。
4.11 第8步,HAL库时间基准stm32f4xx_hal_timbase_tim.c
枚举的奇淫技巧! 枚举特性中: 枚举必须在编译时建立其所有值,并且其值可用于常量表达式。 1 在旧的编译器中以下代码不能编译通过 static const int length = 100;int i[length]; 2 利用枚举间接实现 struct Body { enum { length = 100 }; int i[length];}; 3 枚举骇客的由来 staticconst不被编译器作常量支持,这一点令人费解。 在编译器中不能被支持,利用枚举的特性来支持; 枚举特性中: 枚举必须
建立一个STM32工程 前期准备:版本说明:MDK5.15,如果有更高的版本可使用高版本。 版本号可从 MDK软件的“Help–>About uVision”选项中查询到。
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=93149 第5章 RTX5操作系统移植(MDK AC6) 本本章教程
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=93149 第4章 RTX5操作系统移植(MDK AC5) 本章教程为
到keil的官方网站 http://www.keil.com/download/product/ 下载MDK-ARM并安装,注意可以更改安装路径,但是不能安在需要管理员权限的文件夹,例如不能在Program Files,否则会出现一些问题。
根据Magic Leap上周三(10月11日)向美国特拉华州提供的一份文件显示:Magic Leap计划以每股27美元的价格出售3700万股股票,融资10亿美元。而在更早之前,彭博社曾发文称:“Magic Leap正在寻求5亿美元的新一轮融资,其正与新加坡淡马锡控股公司(Temasek Holdings)进行融资洽谈。” 而在今天,关于Magic Leap最新一轮融资的消息终于落下实锤。Magic Leap宣布,其已完成5.02亿美元D轮融资,由淡马锡领投,巴西风投机构Janus Henderson In
为了在新工作中更好地与技术堆栈保持一致,过去两周我一直在和一个老朋友Java进行自我重新认识。不久之前,它以无与伦比的热情和活力开始了我的软件事业。这一过程持续了大约两年半的时间,但是随着容器和微服务的出现而很快消失。到今天,距我上次编写任何严肃的Java代码已经三年了。老实说,我从没想到它会再次出现,尤其是在微服务领域。
TencentOS tiny目前主要支持ARM Cortex M核芯片的移植,比如STM32 基于Cortex M核全系列、NXP 基于Cortex M核全系列等。本教程将使用STM32官方Demo开发板 NUCLEO-L073RZ进行示例移植,其他 ARM Cortex M系列开发板和芯片移植方法类似。
因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的Cortex 微控制器软件 的兼容性问题,ARM 与芯片厂商建立了CMSIS 标准(CortexMicroController Software Interface Standard)。
前几天在面包板社区申请了一块uFun开发板,昨天刚到手,在烧录Demo程序的时候遇到一个问题,就是Keil打开工程,编译,报很多错误 cannot open source input file"core_cmInstr.h,然后搜索了一些资料,最后解决了这个小问题,以下是解决办法。
自2013年年底以来,作者本人时断时续地会用Rust语言编程。4周前,再次用到Rust,语言比上次使用时更加容易(2016年5月)。这真的很令人兴奋!所以谈谈为什么现在喜欢使用Rust语言,以及几个关于Rust语言明年发展趋势的想法! 我和Rust 我是一个中级Rust程序员(绝对不是高级程序员!)。现在正在写一个Rust的剖析器,这是一个迄今为止大约有1300行Rust代码的软件。2013年,我用Rust语言写了一个很小的400行的“操作系统”(基本上是一个小键盘驱动程序)。 尽管没有太多的Rust经验(
板子上的红色拨码开关用来设置启动方式,支持这四种方式:EMMC 启动、SD 卡启动、USB 烧写以及 M4(debug)模式。
新建project文件夹,并在里面新建三个文件夹,CMSIS(存放内核函数及启动引导文件),FWLIB(存放库函数),USER(存放用户自己的函数),如图。
Transformer架构已经横扫了包括自然语言处理、计算机视觉、语音、多模态等多个领域,不过目前只是实验效果非常惊艳,对Transformer工作原理的相关研究仍然十分有限。
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51671447
请按前面第七章使用 GIT 下载源码、使用 repo 下载工具链,并配置了交叉编译工具链。
1。C++编译时,出现这样的错误 d:\program files\microsoft visual studio\vc98\include\stdio.h(36) : error C2143: syntax error : missing ';' before 'string' d:\program files\microsoft visual studio\vc98\include\stdio.h(36) : fatal error C1004: unexpected end of file found
主题:串口是一种设备间常用的通讯接口,rosserial将串口字符数据转发到标准ROS网络,并输出到rosout和其日志文件。本文将记录如何在ROS上使用其提供的serial包进行串口通信。
之前在M-Arch中弄过STM32的M3,GD32的M4和M23,搭环境就顺风顺水了。
本来是想写个源码分析的,结果分析了半道发现和我想的不一样,就当一个STM32的学习指南了。
---- 1. 本次作业的考察要点: 作业地址:https://github.com/HustWolfzzb/STM32F429DiscoveryFreeRTOS_9Git/GCC/GDB/QEMU等工具的使用。 FreeRTOS多任务同步和通信机制的掌握。 ---- 2. 编程作业: 在github上,Fork例程项目(https://github.com/cbhust/STM32F429DiscoveryFreeRTOS_9.git) 到自己的个人账号。 clone项目到本地电脑的Ubuntu虚拟机
这个周末刚过,我们再次看到了 Gary Marcus 对 AI 圈的最新「整顿」成果。
想学习一样东西,最好先问个为什么要这样,这样学起来才有目标。上大学时,老师讲课总是告诉我们必须这样那样,很少讲这门课是干什么的,有什么意义,有什么用。有一次我问老师,为什么要傅里叶变换,学习它能用来做什么,老师先是很惊讶,然后耐心的给所有同学都讲了讲,老师讲完也很欣慰,笑着说因为很少有学生去问这样的问题。所以也只是讲课,没讲实际的应用和原理的东西。学生们听了也有兴趣了,学也认真了。
最近受到极客社区的邀请,我有幸为大家献上了一期名为“Arm-2D初探——填补空白还是屋上架屋”的公开课。原本计划是1个小时,无奈说的太嗨了,一不小心就讲了3个小时……
STM32CubeMX | 41-使用LTDC驱动TFT-LCD屏幕(RGB屏)。
硬件: 野火挑战者STM32F429 V1开发版,5寸屏 软件:最新版本的STM32CubeF4固件库,TouchGFXDesigner v4.13和 STM32CubeMX v5.6.1,开发环境MDK v5.29
下载NOKIA网站上的QT SDK,解压或安装到相关目录。 本文以QT 4.6.2为例,下载地址:http://get.qt.nokia.com/qt/source/qt-win-opensource-4.6.2-vs2008.exe
Mbed TLS是一个开源、可移植、易于使用、代码可读性高的SSL库。可实现加密原语,X.509证书操作以及SSL / TLS和 DTLS 协议,它的代码占用空间小,非常适合用于嵌入式系统。
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第7章 ThreadX GUIX移植到STM32F429(MDK AC
在前面“C语言使用HAL库开发”章节里,体验了如何使用HAL快速开发。不同于使用汇编和寄存器开发,使用HAL库需要为工程准备许多相关文件,也就是创建HAL库的工程模板。工程模块没有统一的格式,通常是根据多年的开发经验和使用习惯总结出来的,以“5_程序源码\1_创建工程模板”为例,介绍如何一 个工程模板是如何创建的。
领取专属 10元无门槛券
手把手带您无忧上云