首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

makefile 的 ifdef, ifeq 使用及辨析

采用了ifeq-else-endif 结构 可以判别莫个make变量是否定义。...make变量可以makefile定义,也可以由make命令行传递。...由于makefile 支持环境变量,所以你预先定义了环境变量,也可以不在命令行传递而直接使用环境变量 这种机制使得编写脚本控制不同的复杂的编译成为可能, 例如支持各种地域的不同的版本。...比如,你代码里面需要定义一个宏DEBUG来打开调试开关,代码如下:int main(){int i=9;#ifdef DEBUGi=1;#elsei=0;#endifprintf("i=%d\n",...-o ${object} 如果更进一步,连makefile都不想修改,我们可以通过向make命令传递参数来进行,为此,我们需要适当的修改makefile如下: CFLAGS=CFLAG CFLAGS+

7.9K41
您找到你想要的搜索结果了吗?
是的
没有找到

openssl怎么编译成动态库

-f ms/nt.mak 该命令生成静态库,默认使用的是MT 3) 想生成使用静态链接运行时库的动态库则采用下面方法 复制一个ntdll.mak并命名为ntdll_mt.mak,修改里面的 “CFLAG...MT ,然后重新编译,执行 nmake -f ms/ntdll_mt.mak 4) 想生成使用动态链接运行时库的静态库则采用下面方法 复制一个nt.mak并命名为nt_md.mak,修改里面的 “CFLAG...//#ifndef _FILE_OFFSET_BITS //#define _FILE_OFFSET_BITS 64 //#endif #endif b、 报错没有timeb.h时,报错的.c文件...#undef TIMEB c、 去掉openssl顶层Makefile“build_all:”后面的 build_app build_test (我们要的只是两个静态库libcrypto.a和libssl.a.../OpenSSL 2.改Makefile 1) CC= gcc 改成 CC = armeb-linux-gcc; 2) 删除 CFLAG= 的 “-march=pentium”; 3) AR=ar $

61730

Linux之ack命令

命令特点 默认搜索当前工作目录 默认递归搜索子目录 忽略元数据目录,比如.svn,.git,CSV等目录 忽略二进制文件(比如pdf,image,coredumps)和备份文件(比如foo~,*.swp) 搜索结果打印行号...,有助于找到目标代码 能搜索特定文件类型(比如Perl,C++,Makefile),该文件类型可以有多种文件后缀 高亮搜索结果 支持Perl的高级正则表达式,比grep所使用GNU正则表达式更有表现力。...搜索过程,ack维持着认可的文件类型的列表,同时跳过未知或不必要的文件类型。它同样避免检查多余的元数据目录。.../ --[no]make .mk; .mak; makefile; Makefile; Makefile.Debug; Makefile.Release --[no]matlab...xml/ --[no]yaml .yaml .yml 获取包含CFLAG关键字的Makefile的文件名 > ack --make CFLAG ack查找my.cnf文件 > ack

1.7K00

一个查看当前终端标志位设置的小工具

这个工具可以将二进制的标志位,翻译为人类可以读懂的常量宏,例如上面的输出,可以看到输入标志位打开了 ICRNL 与 IXON 两个标志位, 对应的含义分别是“将输入的CR转换为NL”、“使启动/停止输出控制流起作用...这个小工具就解决了这个痛点,你可以配置文件中指定要测试的宏名称,然后 make 一下就可以啦~~~ iflag.sym BRKINT ICRNL IGNBRK IGNCR IGNPAR IMAXBEL...的生成规则就更清楚啦: Makefile 1 all: term 2 3 term: term.o print_iflag.o print_oflag.o print_cflag.o print_lflag.o...检查打印的特殊字符,发现少了下标为 5 / 6 / 7 的字符,查看头文件定义,原来是 linux 上面增加了三个新的定义: cchar.sym VTIME VMIN VSWTC 将它们添加到 sym 文件,...这对于不同平台上进行测试有很大的帮助。

52070

Linux之ack命令

命令特点 默认搜索当前工作目录 默认递归搜索子目录 忽略元数据目录,比如.svn,.git,CSV等目录 忽略二进制文件(比如pdf,image,coredumps)和备份文件(比如foo~,*.swp) 搜索结果打印行号...,有助于找到目标代码 能搜索特定文件类型(比如Perl,C++,Makefile),该文件类型可以有多种文件后缀 高亮搜索结果 支持Perl的高级正则表达式,比grep所使用GNU正则表达式更有表现力。...搜索过程,ack维持着认可的文件类型的列表,同时跳过未知或不必要的文件类型。它同样避免检查多余的元数据目录。.../ --[no]make .mk; .mak; makefile; Makefile; Makefile.Debug; Makefile.Release --[no]matlab...xml/ --[no]yaml .yaml .yml 获取包含CFLAG关键字的Makefile的文件名 > ack --make CFLAG ack查找my.cnf文件 >

1.2K20

Linux之ack命令

命令特点 默认搜索当前工作目录 默认递归搜索子目录 忽略元数据目录,比如.svn,.git,CSV等目录 忽略二进制文件(比如pdf,image,coredumps)和备份文件(比如foo~,*.swp) 搜索结果打印行号...,有助于找到目标代码 能搜索特定文件类型(比如Perl,C++,Makefile),该文件类型可以有多种文件后缀 高亮搜索结果 支持Perl的高级正则表达式,比grep所使用GNU正则表达式更有表现力。...搜索过程,ack维持着认可的文件类型的列表,同时跳过未知或不必要的文件类型。它同样避免检查多余的元数据目录。.../ --[no]make .mk; .mak; makefile; Makefile; Makefile.Debug; Makefile.Release --[no]matlab...xml/ --[no]yaml .yaml .yml 获取包含CFLAG关键字的Makefile的文件名 > ack --make CFLAG ack查找my.cnf文件 > ack

1.1K00

【驱动】串口驱动分析(四)-串口编程和调试方法

一些系统使用 c_cflag CBAUD 选择的位,其他系统使用单独的变量,例如 sg_ispeed 和 sg_ospeed 。) CSIZE   字符长度掩码。...其余 c_oflag 标志常量定义 POSIX 1003.1-2001 ,除非另外说明。 OLCUC   (不属于 POSIX) 将输出的小写字母映射为大写字母。...TCIOFF   发送一个 STOP 字符,停止终端设备向系统传送数据 TCION    发送一个 START 字符,使终端设备向系统传输数据 串口属性设置示例 设置串口属性主要是配置termios结构体的各个变量...newtio.c_cflag &= ~CSIZE; newtio.c_cflag |= CS8; 设置奇偶效验位需要用到两个termios的成员:c_cflag和c_iflag。...首先要激活c_cflag的校验位使能标志PARENB和是否进行奇偶效验,同时还要激活c_iflag的奇偶效验使能。

19010

linux uart应用开发(ttyS*设备)《Rice linux 学习开发》

其余 c_oflag 标志常量定义 POSIX 1003.1-2001 ,除非另外说明。 OLCUC:(不属于 POSIX) 将输出的小写字母映射为大写字母。...③c_cflag: CBAUD:(不属于 POSIX) 波特率掩码 (4+1 位)。 CBAUDEX:(不属于 POSIX) 扩展的波特率掩码 (1 位),包含在 CBAUD 。...(POSIX 规定波特率存储 termios 结构,并未精确指定它的位置,而是提供了函数 cfgetispeed() 和 cfsetispeed() 来存取它。...一些系统使用 c_cflag CBAUD 选择的位,其他系统使用单独的变量,例如 sg_ispeed 和 sg_ospeed 。) CSIZE:字符长度掩码。...VEOL:(0, NUL) 附加的行尾字符。当设置 ICANON 时可被识别。 VTIME:非 canonical 模式读时的延时,以十分之一秒为单位。

3.3K10

Android NDK编程(二)---CMakeList.txt详解

能够输出各种各样的makefile或者project文件。Cmake 并不直接建构出最终的软件,而是产生其他工具的脚本(如Makefile ),然后再依这个工具的构建方式使用。...CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。从而达到跨平台的目的。...A SHARED B.c) add_library(变量名A STATIC B.c) # 源文件 最终生成的 so 多文件设置 file(GLOB 变量名SRCC src/main/cpp/*....#include "path/xx" include_directories( imported-lib/include/ ) # 设置依赖的库 # 如果是静态库,需要根据 add_library设置的变量名..."-DANDROID_STL=gnustl_static"//cmake默认就是 gnustl_static cFlags "" //这里也可以指定cflag

3.1K32

Windows 编译 openssl-1.0.2p静态库 3264、debugrelease、MTMTd

最近要用到 libeay32.lib、ssleay32.lib 两个静态库文件,因为以前项目中其中一个文件 64 位编译时选择的不是 MTd,而导致我引入该库以后提示运行时库和其他库声明冲突,其实实际原因就是生成选项不一样...Perl 安装的时候记得勾选将执行程序添加到系统环境变量。NASM 安装时没有选项,需要在完成后要将执行程序添加到系统的环境变量。如下图所示: ?...打开后切换到 D:\openssl-1.0.2p 目录,执行如下命令生成 makefile 文件。...修改完成执行如下命令开始编译(如果想编译成 dll,则执行 nmake -f ms\ntdll.mak,编译前要修改 ms\ntdll.mak 将 CFLAG 的 /MD 属性修改为 /MT,与你调用项目匹配

5.8K20

Windows 编译 openssl-1.0.2p(libeay32.lib、ssleay32.lib)静态库 3264、debugrelease、MTMTd

最近要用到 libeay32.lib、ssleay32.lib 两个静态库文件,因为以前项目中其中一个文件 64 位编译时选择的不是 MTd,而导致我引入该库以后提示运行时库和其他库声明冲突,其实实际原因就是生成选项不一样...Perl 安装的时候记得勾选将执行程序添加到系统环境变量。NASM 安装时没有选项,需要在完成后要将执行程序添加到系统的环境变量。...图片 打开后切换到 D:\openssl-1.0.2p 目录,执行如下命令生成 makefile 文件。...ms\do_nasm.bat 运行后结果如下: 修改完成执行如下命令开始编译(如果想编译成 dll,则执行 nmake -f ms\ntdll.mak,编译前要修改 ms\ntdll.mak 将 CFLAG

66930

fcntl系统调用

每个进程可以该字节区域上设置不同的读锁。 但给定的字节上只能设置一把写锁,并且写锁存在就不能再设其他任何锁,且该写锁只能被一个进程单独使用。 这是多个进程的情况。...l_whence,l_start,l_len三个变量来确定给文件上锁的区域。...特殊的,当l_len的值为0时,则表示锁的区域从起点开始直至最大的可能位置,就是从l_whence和l_start两个变量确定的开始位置开始上锁,将开始以后的所有区域都上锁。...linux下串口的阻塞和非阻塞操作  有两个可以进行控制串口阻塞性(同时控制read和write):一个是在打开串口的时候,open函数是否带O_NDELAY;第二个是可以在打开串口之后通过fcntl(...移植到串口输入缓冲区中有数据可读取,read读到了需要的字节数之后,返回值为读到的字节数; 对于write,block指当串口输出缓冲区满,或剩下的空间小于将要写入的字节数,则write将阻塞,一直到串口输出缓冲区剩下的空间大于等于将要写入的字节数

1.4K30
领券