linux下及Aix下编译命令总结

64位linux下编译32位程序命令: gcc -m32 test.c -o test32

64位linux下编译64位程序命令: gcc -m64 test.c -o test64

64位linux下编译32位 .o 命令:gcc -m32 -c test.c

64位linux下编译64位 .o 命令:gcc -m64 -c test.c

64位linux下编译32位静态库命令:ar cr libt32.a sotest.o

64位linux下编译64位静态库命令:ar cr libt64.a sotest.o

64位linux下编译32位动态库命令:gcc -m32 -g -Wall -shared -fPIC sotest.c -o libt32.so

64位linux下编译64位动态库命令:gcc -m64 -g -Wall -shared -fPIC sotest.c -o libt64.so

64位linux下编译32位调用动态库程序命令: gcc -m32 test.c -L./ -lt32 -o t32   或者 gcc -m32 test.c libt32.so -o t32 两者效果一样

64位linux下编译64位调用动态库程序命令: gcc -m64 test.c -L./ -lt64 -o t64   或者 gcc -m64 test.c libt64.so -o t64 两者效果一样

查看静态库导出函数: nm -s *.a

查看.a库文件位数:objdump -a  *.a

查看.so库文件位数:objdump -a  *.so或者file *.so

-----------------------------------------------------------------------------------------------------------------------

64位Aix下编译32位程序命令: gcc -maix32 test.c -o test32

64位Aix下编译64位程序命令: gcc -maix64 test.c -o test64

64位linux下编译32位 .o 命令:gcc -m32 -c test.c

64位linux下编译64位 .o 命令:gcc -m64 -c test.c

64位Aix下编译32位静态库命令ar cr libt32.a *.o

64位Aix下编译64位静态库命令ar -X64 cr libt64.a *.o

64位Aix下编译32位动态库命令:gcc -maix32 -g -Wall -shared -fPIC sotest.c -o libt32.so

64位Aix下编译64位动态库命令:gcc -maix64 -g -Wall -shared -fPIC sotest.c -o libt64.so

64位Aix下编译32位调用动态库程序命令: gcc -maix32 test.c libt32.so -o t32

64位Aix下编译64位调用动态库程序命令: gcc -maix64 test.c libt64.so -o t64

查看32位静态库导出函数: nm *.a

查看64位静态库导出函数: nm -X64 *.a

查看.so库文件位数: file *.so

-----------------------------------------------------------------------------------------------------------------------

64位linux编译32程序时错误提示:/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h:No such file or directory

# yum -y install glibc-devel.i386

1、64为linux编译如果不带m64参数编译出来的程序依然为64位

2、编译目录下执行export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH,可解决找不到当前目录so库的问题

3、64位程序在头文件定义加上 #pragma pack(4) 表示结构体以四个字节对齐 ,否则可能会出现一个包含Int类型的结构体 int类型和紧挨的一个类型 间隔8个字节的情况

显式调用时不要在MakeFile中加"-l库名称",直接dlopen 然后获取函数地址调用即可。
隐式链接时需要包含头文件加上"-l库名称",直接可以调用了。
静态链接时需要包含头文件加上"-l库名称",这时的库应该为.a库。

时间: 2024-10-23 08:11:24

linux下及Aix下编译命令总结的相关文章

linux下的APK反编译软件及过程介绍

需要工具: 1.apktool apk打包工具 下载地址:http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2 安装:直接解压即可,是一个apktool.jar文件,通过 $java -jar apktool.jar 来运行,依赖于java运行环境 2.dex2jar dex转化jar工具 下载地址:http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip 安装:直

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

Linux下的文件夹创建命令使用实践

[文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言  Linux  文件夹创建  makefile  开发 一.mkdir命令简单介绍 mkdir命令用来创建指定名称的文件夹,其命令格式为:mkdir [选项] 文件夹... 当中,[选项]能够是"-m"."-p"或"-v". 此外,文件夹名是区分大写和小写的. 二.本程序流程 本文中的程序用

Linux下通过源码编译安装程序

ASK: Linux下通过源码编译安装程序(configure/make/make install的作用) configure Linux 平台有各种不同的配置,安装时需要通过 configure 来确定,如:编译器用的是 cc 还是 gcc.不同库文件所在目录等.执行 configure 后会生成 Makefile,Makefile 规定了用什么编译器.编译参数等信息. make 根据 Makefile 中规定的内容进行编译,生成的可执行文件放在当前目录或某个子目录. make install

[转]Caffe在Linux下的安装,编译,实验

Caffe在Linux下的安装,编译,实验 原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利视觉和学习中心(BVLC)开发.作者是伯克利博士贾杨清.caffe是一个深度学习(deep learning)框架.其具有易读.快速和模块化思想. 第二部分:Caffe安装与配置 2.1 配置环境:ubuntu 14.04LTS, 使用Homebrew进行安装.暂不使用GPU,所以使用CPU-ONLY

【Linux学习】Ubuntu下内核编译(一)

(1)当要执行内核配置时,输入make menuconfig时出现错误 遇到这个问题,主要是以为没有ncurses库,而make menconfig 需要这个库,因此需要安装ncurses或者ncurses-devel即可.输入命令:sudo  apt-get  install ncurses或者sudo apt-get  install ncurses-devel. (2)错误 drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_

Linux下提权常用小命令

有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么难,你真去尝试做了,也许你就会发现Linux下的提权并不难,尤其是一些简单的提权方法是很容易学会的.Linux下的提权我知道的比较简单的方法都是在命令行下完成的,很多新手叉子可能根本没接触过Linux下的一些常用命令,今天危险漫步就给大家介绍一些Linux下提权过程中常用到的Linux命令,由于我也

Linux和Ubuntu环境下B2G(Firefox OS)安装、编译、测试教程集合

1在ubuntu上测试Firefox OS(B2G)系统 Firefox OS,项目代号为"Boot 2 Gecko",是一个开放的完全基于WEB标准的智能手机操作系统,由Mozilla公司开发.Firefox OS 底层属于Linux,开放的Web技术,而不是特定于平台的原生API,用HTML5 编写应用程序.Firefox OS 每日构建版目前可在电脑桌面上试用. 安装过程非常简单,下面是详细的步骤说明: 点 这里 下载 ... 2在 ubuntu系统上建立b2g系统(翻译) 你已

Linux下librdkafka客户端的编译运行

Linux下librdkafka客户端的编译运行 librdkafka是一个开源的Kafka客户端C/C++实现,提供了Kafka生产者.消费者接口. 由于项目需要,我要将Kafka生产者接口封装起来给别人调用,所以先安装了librdkakfa,然后在demo上进行修改封装一个生产者接口. [一] 安装librdkafka 首先在github上下载librdkafka源码,解压后进行编译: cd librdkafka-master chmod 777 configure lds-gen.py .