精华内容
下载资源
问答
  • 单片机中代码生成.a文件

    千次阅读 2020-07-16 08:57:03
    单片机中代码生成.a文件 1、首先要把.c文件生成.o文件 2、然后再把.o文件生成.a文件。 具体操作步骤如下: (1)编译生成.o目标文件,如:gcc -c test.c 注:-c选项表示只编译生成.o目标文件. (2)使用ar命令...

    概述

        单片机开发中有时会遇到把项目中一部分功能外包或者模块外包出去,此时公司核心代码,又不想提供。那么就要提供.a文件给外包人员了,有些废话,本篇只要是讲解 .c文件怎么生成 .a文件步骤。

    1、环境:window10。

    2、安装gcc工具,在这,我安装了mingw这个工具。
    单片机中代码生成.a文件
    1、首先要把.c文件生成.o文件

    2、然后再把.o文件生成.a文件。

    具体操作步骤如下:

    (1)编译生成.o目标文件,如:gcc -c test.c     

      注:-c选项表示只编译生成.o目标文件.

    (2)使用ar命令生成.a库文件,如ar -rv test.a test.o  

     注:ar命令可以用来创建、修改库,也可以从库中提出单个模块。

    r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。
    如果若干 模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。
    默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。

    v: 该选项用来显示执行操作选项的附加信息。

    注:我们可以跳过第一步,直接使用VSGDB生成的.o文件执行第二步。
        需要使用到的Dos命令:cd 跳转 dir查看(相当于linux下的ls) cls清屏(相当于linux下的clear)

    展开全文
  • linux之so文件、a文件、o文件的区别

    千次阅读 2017-06-26 23:54:53
    1、o文件 o 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件 .o文件是源码编译出的二进制文件。 你先得了解从源代码到可执行文件的过程。以一个简单的add函数源文件为例。 int add(int a,int b) { ...

    1、o文件

    o 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件
    .o 文件是源码编译出的二进制文件。

    你先得了解从源代码到可执行文件的过程。以一个简单的add函数源文件为例。

    
    int add(int a,int b)
    {
        return a+b;
    }

    先预处理为.i文件
    gcc -E add.c -o add.i
    再编译为汇编文件
    gcc -S add.i -o add.s
    再汇编为二进制的.o文件
    gcc -c add.s -o add.o

    好,现在.o文件出来了。它就是C/C++编译的产物,因为C/C++编译的单元编译。每一个.c/.cpp文件就是一个编译单元,把所有单元都编译好之后,再连接成一个完成的程序。

     

     


    2、a文件

    .a文件实质上就是.o文件打了个包。一般把它叫做
    展开全文
  • .o 就是object, 也就相当于windows下编译的obj文件, 俗称目标文件. .a 就是archive, 也就相当于windows的VC下编译的lib文件, 俗称静态库文件. .o文件是链接文件,.a是静态库文件...生成.a文件: ar cqs test.a test...

    .o 就是object, 也就相当于windows下编译的obj文件, 俗称目标文件. 
    .a 就是archive, 也就相当于windows的VC下编译的lib文件, 俗称静态库文件.

    .o文件是链接文件,.a是静态库文件,靠.o文件生成,作为一个库为外部程序提供函数,接口。 
    生成.o文件: 
    gcc -c test.o test.c 
    生成.a文件: 
    ar cqs test.a test.o

    .o 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件 
    .a 是好多个.o合在一起,用于静态连接 ,即STATIC mode,多个.a可以链接生成一个exe的可执行文件 
    .so 是shared object,用于动态连接的,和windows的dll差不多,使用时才载入。

    原文链接:http://blog.sina.com.cn/s/blog_935ccd710101iu3s.html

    展开全文
  • linux下生成.so文件和.a文件

    千次阅读 2019-01-23 10:48:37
    原文链接:...   linux下生成.so文件和.a文件 test.h 1 #ifndef _TEST_H_ 2 #define _TEST_H_ 3 4 void TestA(); 5 void TestB(); 6 7 #endif   t...

    原文链接:http://www.cnblogs.com/tzhangofseu/archive/2011/11/15/2249585.html

     

    linux下生成.so文件和.a文件

    test.h

    复制代码

    1 #ifndef _TEST_H_
    2 #define _TEST_H_
    3 
    4 void TestA();
    5 void TestB();
    6 
    7 #endif

    复制代码


     

    test_a.cpp

    复制代码

    1 #include <stdio.h>
    2 #include "test.h"
    3 
    4 void TestA()
    5 {
    6     printf("TestA func\n");
    7 }

    复制代码


     

    test_b.cpp

    复制代码

    1 #include <stdio.h>
    2 #include "test.h"
    3 
    4 void TestB()
    5 {
    6     printf("TestB func\n");
    7 }

    复制代码


     

    生成so文件的命令

    g++ test_a.cpp test_b.cpp -fPIC -shared -o libtest.so

    生成.a文件的命令

    1 gcc -c test_a.cpp
    2 gcc -c test_b.cpp
    3 ar -r libtest.a test_a.o test_b.o



     

    test.cpp

    复制代码

    1 #include "test.h"
    2 
    3 int main()
    4 {
    5     TestA();
    6     TestB();
    7 
    8     return 0;
    9 }

    复制代码


     

    采用动态库编译命令

    g++ test.cpp -o test -L. -ltest


     

    执行

    export LD_LIBRARY_PATH=./
    ./test

    执行结果如下。

     

    采用静态库编译命令

    g++ -static -o test -L. -ltest test.cpp

    执行效果


    静态库的嵌套调用,有时候我想做一个自己的静态库,它里面要调用其他静态库里面的函数,经过试验

    这个好像用ar -r不行,所以就在链接的时候需要两个库文件都包含,同时要有这一个头文件才行。。。

    展开全文
  • 关于linux下的.a文件与 .so 文件

    万次阅读 2017-10-13 15:44:04
    连续几天终于将一个又一个问题解决了,这里说其中一个问题  描述问题:使用多线程pthread的时候,(我用的IDE,... 发现:pthread要用到动态链接库(libpthread.a)才能使用。  解决办法:后来在setting->compl
  • 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件.a文件::: 是好多个.o合在一起的静态库文件,相当于windows下的.lib文件。给外部程序提供接口,用于静态连接 ,即STATIC mode。多个.a可以链接生成...
  • linux下c语言工程: c文件:主要每个模块的原代码都在c文件中。 h文件:每个c文件都跟着一个h文件,h文件的作用是...o文件如何形成: gcc -c a.c 可执行文件: 不论是c文件还是o文件,都是无法执行的,最终还要生成
  • .a文件和.lib文件的区别

    万次阅读 2017-07-06 10:50:42
    .a文件和.lib文件的区别  2013-08-01 10:42:37| 分类: 编程知识|举报|字号 订阅    下载LOFTER我的照片书 | (转载) 最近开始...
  • 按照自己的理解画的动态链接和静态链接的关系。...应该是这样的,个人理解在Vxworks平台上是没有动态链接的,但是.o或者.out文件可以使用vxWorks的loader(loadLib)动态加载到vxworks的镜像中。 谢谢拍砖 ...
  • 在linux中cmake 使用.so .a文件

    千次阅读 2017-09-15 15:57:11
    是不是拿到.so .a 文件直接在cmakelist.txt中添加下面两句就...答案当然不是,你还需要拿到头文件,如果没有头文件依旧无法使用,回忆下.so.a文件的生成过程,好像在生成的时候就没有用到头文件,因此我猜测.so.a文件
  • 解压静态库.a文件

    万次阅读 2015-11-16 20:34:31
    首先先准备一个静态库.a文件,比如叫staticLibrary.a,放在桌面的test目录里。分离arch首先先file一下staticLibrary.a,看一下该文件包含几种arch。~ cd Desktop/test test ls staticLibrary.a test file static...
  • ubuntu下gcc链接静态库.a文件

    万次阅读 2017-05-24 13:42:24
    ubuntu下gcc链接静态库.a文件
  • Linux环境下静态库的生成和使用 (.a文件)

    万次阅读 多人点赞 2016-07-18 14:56:24
    2.静态库的后缀名是.a,对应于windows操作系统的后缀名为.lib的静态库。 3.可以使用ar命令来创建一个静态库文件。 来看一个实例,根据书中的代码简化的,先看一看可以编译成库文件的源文件中的代码: [cpp]...
  • 最近公司在进行组件化开发,用pod进行集成,碰到不少问题,在这把遇到坑分享给大家如果在制作pod时导入了.a文件,如果下图得在podspec文件里包含这句话s.vendored_libraries = 'WoqiSDK/Classes/*.a'路径记得要换...
  • 提交.a文件到svn

    万次阅读 2014-12-19 09:58:47
    搜索了一下解决方案: ... 1. 打开终端, 在命令行中输入: vi ~/.subversion/config 来打开配置文件. 2. 然后, 在[miscellany]项找到这个串:  # global-ignores = *.o *.lo *.l
  • 很多人都知道,gcc在链接静态库时是从前往后找符号。...如果我们在链接命令中,直接用.o文件替换.a文件,那也需要遵循gcc的这种链接顺序吗?可以用gcc .. bar.o ... foo这样的链接命令吗?可以做个简单的试验。
  • xcode 制作静态库.a文件 详解

    万次阅读 2014-03-19 10:39:06
    其实这个错误原因很简单,就是因为,我们用错了编译出来的libUITab.a lib,在模拟器里面,我们需要的是基于i386构架编译的static lib,但是这个a文件,大家还记得前面说的arm6 arm7构架的么。这个a其实是在iphone这...
  • 文件列表: 代码文件/* 下列代码保存到 plus.cpp */int my_plus(int x,int y) { return x + y; } /* 下列代码保存到 minus.cpp */ int my_minus(int x,int y) { return x - y; } /* 下列代码保存到 my_...
  • svn 无法上传.a 文件的解决办法

    万次阅读 2014-06-16 11:12:53
    svn 无法上传.a 文件的解决办法
  • smartSvn .a文件提交方法

    千次阅读 2015-01-14 11:07:09
    昨天在提交文件到svn的时候遇到一个问题,因为我用的是smartsvn客户端(version客户端类似),一些.a文件无法识别,也就无法提交到svn! 解决办法如下: 在smartsvn客户端下面view->Ignored Files 勾选上就ok...
  • 用fdisk给新磁盘分区后。然后要创建文件系统 [root@cuizhipeng ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) ... will not make a 文件系统 here! 提示、dev/sdb1正在被使用。 [root@
  • 一 常用脚本 1 打包脚本 脚本如下,下面附上ar 和 ranlib命令参考(命令来自于网络) ALLLIB=*.a FILE=`ls *.a` #原来的库解压重命名 for F in $FILE do  ar x $F  OBJ=`ar t $F`  for O in $OBJ  do
  • linux 下 .o 文件, .a文件,.so文件的区别

    万次阅读 多人点赞 2012-03-02 14:32:10
    最近在unbuntu环境下开发代码,由于很少使用linux开发环境,所以对linux编译方面了解更少,关于.o, .a, .so文件和可执行文件一直很困惑 今天特意查了一下关于它们的区分: .o 就相当于windows里的obj文件 ,一个...
  • 关于MinGW下.dll.a文件的作用

    万次阅读 2010-03-14 14:45:00
    .dll.a文件的最初用意其实是MinGW下的DLL文件的imp-lib,即与VC下DLL文件附带了一个引入库.lib类似。在VC下编程,当要使用DLL文件时,在开发时必须要有.lib文件才能链接通过。.dll.a文件就是这样的作用。 但是,...
  • Xcode中SVN不能提交.a文件的解决方法

    万次阅读 2014-09-19 17:34:17
    Xcode默认忽略的.a 文件。所以无法提交到svn服务器,但是很多第三方的库都有.a文件。所以还是必须提交到服务器。
  • 服装CAD DXF转换软件 AAMA格式互转完美破解版 可以打开格博、力克、富怡多款CAD文件,并且转换出标准的DXF或AAMA(特别推荐珍藏版)
  • Linux下静态库.a文件生成方法

    千次阅读 2009-04-27 10:55:00
    Linux下静态库.a生成1.将各函数代码所在的源文件编译成目录文件。例如,对于myfunc.c,可以用如下命令 将其编译成目标文件: gcc -c myfunc.c 当然在有多个源文件时,只需在gcc 命令行中将其分别列上就可以了。经此...
  • Matlab 2014a 破解文件

    千次下载 热门讨论 2014-04-04 19:07:05
    MatLab 2014a版本破解文件,32位和64位都可用。安装完成后打开软件就能看到中文界面了。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,300,844
精华内容 2,120,337
关键字:

a文件