Makefile 编译静态库】的更多相关文章

本文为原创文章,转载需指明该文链接 1.代码目录结构如下: comm/ comm/inc/apue.h  3 atexit.c Makefile  5 staticlib/lib/ staticlib/inc/staticlibs.h staticlib/staticlib_add.c  9 staticlib/staticlib_mul.c staticlib/Makefile 2.目录 staticlib/lib/ 是用来盛放静态库文件的——libmytest.a,在编译静态库之前该目录是空…
CC = gcc AR = ar FLAGS = -Wall -lpthread CLOUD = cloud_server OBJ += cloud_server.o LIB = libccloud.a LIBOBJ = cloud_client.o LIBSRC = cloud_client.c all: $(LIB) $(CLOUD) $(LIBOBJ):$(LIBSRC) $(CC) $(FLAGS) -c $(LIBSRC) $(LIB):$(LIBOBJ) $(AR) cq $@ $^…
与java和.net一样,objc也由类库的概念,不过在在objc上一般叫库,库表示程序代码集合,可以共享给其他程序使用,库是编译后的二进制文件,因此不能看到源代码,多用于一些开放sdk(如百度地图sdk),商用库,这两天在研究iOS上编译静态库,这里把编译的过程和中间遇到的一些问题做一下记录,方便以后查阅 objc上的库一般分为两类 静态库: .a 和 .framework .a文件:纯二进制文件,需要配合.h文件一起使用,通过.h文件引用库里面的内容 .framework文件:包含二进制文件…
本文主要讲述了如何使用Visual Studio 2013 编译静态库和动态库,并使用. 一.静态库 1.  编写静态库 若要创建将引用并使用刚创建的静态库的应用程序,请从“文件”菜单中选择“新建”,然后选择“项目”. A 在“项目类型”窗格中,选择“Visual C++”下的“Win32”. B 在“模板”窗格中,选择“Win32 控制台应用程序”. C 为项目选择一个名称(如 MyExecRefsLib),并将其键入“名称”字段. 在“解决方案”旁边的下拉列表框中选择“添入解决方案”. 这会…
android ndk-build 编译静态库libxx.a 需求场景: 目前有安卓编码好的现在的openssl的两个.a,我们需要调用openssl的函数,并把功能再封装成.a; 这样使用时,在android studio jni项目 cmake 里面,需要先引用openssl的.a再引用 上面封装的.a; 如果使用so,那么,直接在android studio jni项目的 cpp里面直接调用openssl的方法,对外提供jni java接口,打包成so即可: 先来说用ndk-build 打…
熟悉C++开发的的小伙伴都知道,我们一般代码中往往要引入许多第三方编译好的库,有些是静态链接库static library, 有些是动态链接库dll.引入库的目的一是减少代码的编译时间,二是只提供函数/方法接口,可以有效的保护源码不被泄露.下面将在DSP C6657上编译静态库.lib 工具 DSP C6657 EVM官方评估板 CCS8.1 win10 PC 编译静态库 思考 Visual Studio 2017上编译静态库static library的过程: 新建一个.h头文件(写函数的声明…
在Cmake-gui上看到的明明是MD运行库依赖,生成MS项目时却变成了MT运行库依赖. 原因在于编译静态库时内部做了自动替换.…
前言 spdlog++库,而且支持header only方式,但header only的使用方式会造成编译时长增加,所以这里简单描述一下,其编译静态库的方式. 又因为spdlog还依赖另一个开源库fmt,而fmt目前已经加入标准库,所以很多时候,自己的项目会自带fmt,不需要spdlog内部绑定一个.所以本文会采用一下方式来组成编译. sdplog # 使用外部fmt fmt # 独立的 静态库 通过cmake方式组装工程 实例工程项目目录 deps ├── include │ ├── fmt…
c和cpp 混合的动态库生成: $(LIBSO): $(COBJS) $(CPPOBJS) $(CPP) -shared -o $@ $^ $(LIBS) ////////////////////////////////////////////////////////////////////////////// #for multchannel decoder makefile by pkf BIN = client_system BASE_INSTALL_DIR := /opt/arm-200…
一 代码 //add.h int add(int a, int b); //add.c int add(int a, int b) {     return a+b; } //main.c #include <stdio.h> #include "add.h" void main() {      printf("3 + 2 = %d\n",add(3+2)); } 二 多文件编译 1 生成.o文件 命令:gcc -c add.c main.c 生成:a…
tinyxml的makefile文件默认是编译可执行的二进制文件xmltest.  需要改成静态库. 更改OUTPUT := xmltest 为:OUTPUT := libtinyxml.a 删除SRCS:=tinyxml.cpp tinyxml-parser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中的xmltest.cpp 更改${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS} 为:  ${…
01- 复习 tar tvf xxx 查看压缩包内容 区分前后台: 是否能和用户交互 Vmware选桥接模式 会给系统虚拟一个和外部相同网段的ip 02- vim扩展操作 因为不是做嵌入式开发的 所以这些东西不是特别重要 简单过一遍 缩进: 右缩进 两个>> 左缩进 两个<< 4行右缩进  4>> 想把m变量改成n: 15,17s /f/m/g r替换当前字符 R 替换当前光标后的字符 [d 查看宏: (这个宏是在上面定义的) 在程序中使用man page: 光标移动到…
应用层通过操作文件操控硬件 使用制作好的工具链: 刚开始学习时,用一些已经制作好的工具链,使用以下命令解压到gcc-3.4.5-glibc-2.3.6目录 cd /work/tools tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 然后在环境变量PATH中增加路径,入下所示: (很重要,还可以添加在/etc/bash.bashrc中,添加过后重启服务:sudo source /etc/bash.bashrc) export PATH=$PATH:…
今天介绍下,如何利用Xcode,新建一个静态库,以及如何编译成i386.armv7.armv7s 等平台架构. 开发环境:MAC OS X 10.9.4 + Xcode 5.0.2 背景知识:库分两种:静态库(.a..lib) 和 动态库(.so..dll),.a 和 .so 为linux平台下库后缀名,.lib 和 .dll 为windows平台下库后缀名.[对静态库和动态库不熟悉的,请参见博文:http://www.cnblogs.com/skynet/p/3372855.html ].io…
库是一种软件组件技术,库里面封装了数据和函数. 库的使用可以使程序模块化. Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件). Linux通常把库文件存放在/usr/lib或/lib目录下. Linux库文件名由:前缀lib.库名和后缀3部分组成,其中动态链接库以.so最为后缀,静态链接库通常以.a作为后缀. 在程序中使用使用静态库和动态库时,他们载入的顺序是不同的. 静态库的代码在编译时就拷贝的应用程序中,这样的优点是节省编译时间. 动态链接库时程序在开始运行后调用…
本文转自http://blog.csdn.net/fengbingchun/article/details/17994489 Ubuntu环境:14.04 首先创建一个test_makefile_gcc文件夹,此test_makefile_gcc文件夹下包括:src文件夹用于存放源文件: include文件夹用于存放头文件:bin文件夹用于存放生成的动态库.so文件:lib文件夹用于存放生成的静态库.a文件:project_makefile文件夹存放此工程的makefile文件:test文件夹存…
一下为windows上安装过程 1.下载 openssl-1.1.0.tar.gz 2.安装 ActivePerl, 可以到http://www.activestate.com/activeperl/downloads下载最新版本, 需要用到 perl 解释器. 注:Perl 最低版本要求5.10以上,Windows XP用户最后支持版本ActivePerl 5.20.2.2002 版本 3.使用 VS2010 下的 Visual Studio 2010 Command Prompt 进入控制台…
静态库: cc  -c   mod1.c  mod2.c //编译 ar   r     libdemo.a   mod1.o   mod2.o //生成静态库 cc  -c   prog.c //编译 cc  prog.o  libdemo.a   -o    prog  //链接 其中-c选项意为只编译不链接 ar    tv   libdemo.a    // 查看libdemo.a包含的目标文件 r:替换 t:目录表 d:删除 动态库: 1.gcc  -c  -fPIC  mod1.c…
Linux下创建与使用静态库 Linux静态库命名规则 Linux静态库命名规范,必须是"lib[your_library_name].a":lib为前缀,中间是静态库名,扩展名为.a. 创建静态库(.a) (1) 将代码文件编译成目标文件.o(test.o) 命令:g++ -c  test.cpp (2) 通过ar工具将目标文件打包成.a静态库文件 命令:ar -crv libtest.a test.o 生成静态库test.a 使用静态库 Linux下使用静态库,只需要在编译的时候,…
Linux的静态库是以.a结尾的,要连接静态库有两种方法,一种是在编译命令最后直接加上库路径/库名称. 例如你的库在绝对目录/lib/libtest.a下面你就可以这样来编译$(CC) $(CFLAGS) $^  -o $@  /lib/libtest.a 另外一种方法是,你可以用-L制定库的目录,用-l指定库的名称.(是一起用的-L -l) 例如库的名称为libtest.a 那么就用-ltest -ltest要放在-o的后面,不然不会起作用.…
有时候,我们需要将一部分经常用到的代码提取出来用来复用,或者说需要用到c++的代码的时候,可以通过编译成静态库的方式来使用.本文中使用的Xcode版本是8.3,静态库制作过程和其他版本基本一样,可能出现的内容有所差别,但并不影响制作. 1.创建一个静态库工程. 选择iOS->Cocoa Touch Static Library,如下图所示. 创建完成后,工程中会出现两个文件.h和.m,文件名是你的工程名,将.h中的所有内容删除,将.m文件删除,如下图: 2.导入依赖库和需要编译的文件. 导入你的…
此前编译了一个静态库,默认支持了armv7,armv7s,arm64 编译的话肯定是上面三个静态库分别编译出来,然后在把这三个合并成一个单独的库. 如果单个库的大小是10M,那编译总的库大概就30M了! 从arm架构所支持的机型来看: arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)armv7s:iPhone5|iP…
无论windows,linux 所有的库 ,dlib,opencv 通过cmake-gui 设置好静态库, 动态库,和其他各个选项 Tips: cmake 优先级用cmake-gui,因为命令太多,容易敲错!!!!! cmake 默认是制作动态库.so, 若需要制作静态库 1.BUILD_SHARED_LIBS 设置为OFF cmake-gui 选择: BUILD => BUILD_SHARED_LIBS 默认是勾选就是动态库(.dll/.so):不勾选就是静态库 (.lib/ .a), 还可以…
  今天要用到静态库和动态库,于是写了几个例子来巩固一下基础.hello1.c ———————————————————— #include <stdio.h>void print1(int i) { int j; for(j=0;j<i;j++) { printf("%d * %d = %d\n",j,j,j*j); }    }hello2.c _________________________________________________ #include &l…
安装Qt 去Qt官网下载Qt安装包  安装Qt和源码,一定要勾选source选项  添加bin到系统变量  工具 需要python3和 perl. vs2015 第三方工具,到官方下载安装  在命令行测试工具是否安装成功  configue 首先修改文件C:\Qt\Qt5.6.2\5.6\Src\qtbase\mkspecs\common\msvc-desktop.conf 把MD替换为MT静态编译  然后上面打开的终端cd命令跳到Qt源码目录 ,输入下面命令 5.6 configure -co…
离 https://github.com/NetEase/libpomelo 下载最新版本.拉开拉链,静态库 ./pomelo_gyp -DTO=ios ./build_ios ./build_iossim 分别生成了ios设备(arm)和ios虚拟机(i386)的静态库,用lipo把两个打包在一起: lipo -create ./build/Default-iphoneos/libpomelo.a  ./build/Default-iphonesimulator/libpomelo.a  -o…
xx.o : xx.h xx.cpp -lstdc++ -o xx.o -c xx.cpp -I ./ libxx.a : xx.o ar -crv libxx.a xx.o libTest.so : loadClass.cpp loadClass.h -lstdc++ -o libTest.so loadClass.cpp -I ./ libshared.so: shared.cpp shared.h -lstdc++ -o libshared.so shared.cpp -I ./ libx…
本文为原创文章,转载请指明该文链接 文件目录结构如下 dynamiclibapp.c Makefile comm/inc/apue.h comm/errorhandle.c dynamiclib/Makefile dynamiclib/dynamiclib_add.c dynamiclib/dynamiclib_mul.c dynamiclib/inc/dynamiclibs.h dynamiclib/libs/ 1. dynamiclib目录 dynamiclib/inc/dynamiclib…
----------2015/01/09/23:21更新----------------------------------- 关于保留DEBUG信息的一个简单例子,见这篇随笔 ----------2014/12/18/17:53更新----------------------------------- 前段时间写了这篇随笔,现在回过头来看感觉有很多问题,因此打算修正和补充一下,以前写的内容也没删,就留在这篇随笔的最下面了,可以对比着看看 目的:编写使用ZThread库的多线程程序 Window…
CMake生成Unicode版本VC工程 Just add this line in your top CMakeLists.txt file:     add_definitions(-DUNICODE -D_UNICODE) if(MSVC)            add_definitions(-DUNICODE -D_UNICODE)        endif() 基本配置 配置生成库输出目录 ExportDir=F:\Develop\bin\x64    Add Entry:     …