SylixOS x86平台C++符号表

1.C++跨平台问题说明
在x86平台下编译C++工程过程后,运行编译好的C++共享库时出现符号表__atomic_fetch_sub_4找不到的问题,如图 1.1所示。

             图 1.1 符号表缺失

2.问题解决
符号表缺失的原因是由于在跨平台编译时要加对应的平台编译选项,在x86平台下要增加-march=i686选项,如图 2.1所示。

       图 2.1 增加Makefile编译选项

编译上传后,再运行动态库,发现动态库没有出现符号表未定义的问题,如图 2.2所示。

      图 2.2 动态库正常运行截图

原文地址:http://blog.51cto.com/8458972/2152291

时间: 2024-08-02 10:02:51

SylixOS x86平台C++符号表的相关文章

SylixOS在x86平台的快速构建

1.适用范围 本文档适用于使用RealEvo-IDE集成开发环境在x86平台快速构建SylixOS运行环境. 2.前提准备 在开发机上正确安装RealEvo-IDE集成开发环境. 一台正常的x86平台目标机(建议使用Intel处理器,包含显示器或者串口等输出设备和键盘等输入设备). 如果需要U盘安装则需要一个大于32M的空白U盘. 3.制作x86 bsp启动镜像 3.1准备base工程 3.1.1打开RealEvo-IDE 双击图标,打开RealEvo-IDE软件,如图 31所示选择建立工程的工

ELF格式文件符号表全解析及readelf命令使用方法

http://blog.csdn.net/edonlii/article/details/8779075 1. 读取ELF文件头: $ readelf -h signELF Header:  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  Class:                                                  ELF64  Data:                            

编译器架构的王者LLVM——(9)栈式符号表的构建

LLVM平台,短短几年间,改变了众多编程语言的走向,也催生了一大批具有特色的编程语言的出现,不愧为编译器架构的王者,也荣获2012年ACM软件系统奖 -- 题记 版权声明:本文为 西风逍遥游 原创文章,转载请注明出处 西风世界 http://blog.csdn.net/xfxyy_sxfancy 栈式符号表的构建 栈式符号表对于一款编译器,无疑是核心的组件. 无论你在做什么符号扫描,那么都离不开符号表,如何得知一个符号是否定义,以及它的类型,那么唯有查看符号表中的记录. 栈式符号表并不复杂,但思

SylixOS ARM平台下的内存对齐访问

1.内存对齐1.1 内存对齐概要现代计算机中内存空间都是按照byte划分的,从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 1.2 内存对齐作用和原因各个硬件平台对存储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率

Mach-O在内存中符号表地址、字符串表地址的计算

KSCrash 是一个用于 iOS 平台的崩溃捕捉框架,最近读了其部分源码,在 KSDynamicLinker 文件中有一个函数,代码如下: /** Get the segment base address of the specified image. * * This is required for any symtab command offsets. * * @param idx The image index. * @return The image's base address, o

查看程序符号表的几个命令

objdump -t xxx.o [email protected]:~/Documents/encrypchip$ objdump -t main.o main.o: file format elf32-little SYMBOL TABLE: 00000000 l df *ABS* 00000000 main.c 00000000 l d .text 00000000 .text 00000000 l d .data 00000000 .data 00000000 l d .bss 0000

算法-符号表的实现(顺序查找和二分查找)

符号表是一种存储键值对的数据结构,支持两种操作插入和查找,就是将一组新的键值对存入表中然后根据给定的键得到对应的值,在编程语言中常用Dictionary原理类似.符号表是一种典型的抽象数据结构,在生活之中应用的场景也很多,可以根据钥匙开门,域名解析的时候的IP地址查询,字典和图书的简介和页数,key和value是密不可分的,通过key我们可以很快找到我们需要的value. 无序链表的顺序查找 主要通过Node节点存储数据,之前的博客中有关于链表的实现,详情可参考之前的博客,代码有注释就解释太多了

unity中如何配置Android X86平台

从unity4.6版本开始,unity已经对Android系统支持x86平台的编译构建了,同时也支持了通用二进制 (通用二进制作为默认的编译选项). 大家都知道,目前市面上主流的Android设备主要是armeabi,armeabiv7a和x86平台,对于独立CPU平台的支持有助于程序在该平台的运算和优化.下面简单介绍一下如何配置. 1.打开unity项目 2.单击unity菜单栏的File->build settings 3.在弹出的设置弹框中选择Android,然后点击"player

Linux内核的配置与编译(X86平台)

说明:只供学习交流 目的: (1):配置.编译X86平台下的Linux-2.6.29内核 (2):在vmware下安装编译好的内核并启动 工具: Gcc编译器, Linux-2.6.29内核 步骤: (一):清除临时文件,中间文件和配置文件等(刚从网上下载下来的文件这步可省略). make clean 删除大多数的由编译生成的文件.但会保留内核的配置文件.config. make mrproper 删除所有的编译生成的文件,还有内核配置文件,再加上各种备份文件. make distclean m