NTP 4.2.8p9在cygwin下的交叉编译

简介:NTP(Network Time Protocol)是指网络时间协议,是PC、手持设备、其他终端或者服务器来校准时间的协议。如,windows和linux系统都有对应的时间校准,使用的都是NTP协议。NTP协议的基于C来实现,代码跨平台,可在windows、linux以及其他平台上编译运行。NTP的官方协议实现库,当前最新版本是4.2.8p9。NTP4.2.8p9出于安全性的考虑,该版本依赖于openssl的库,经笔者试验openssl 0.98的版本支持不了,用openssl1.1.0e的版本可以支持。
1.准备
1) openssl: openssl 1.1.0。(该交叉编译的文章见“CYGwin下交叉编译openssl1.1.0e”)

2) cygwin 32

3) 第三方编译工具链
2.编译配置
#./configure --host=arm-linux --prefix=/usr/local/arm-ntp --with-yielding-select=no CFLAGS=-I/usr/local/arm/3.3.4/arm-linux/sys-root/usr/include LDFLAGS="-L/usr/local/arm/3.3.4/arm-linux/sys-root/lib -L/usr/local/arm/3.3.4/arm-linux/sys-root/usr/lib" --with-openssl-libdir=/usr/local/arm-ssl/lib --with-openssl-incdir=/usr/local/arm-ssl/include
下面就configure的配置参数一一做以说明:
1)其中--host=arm-linux指定目标要运行的环境,arm-linux实际上交叉编译器的前缀,configure脚本会识别到arm-linux关键字,会将目标系统识别为linux的arm平台。
2)--prefix=/usr/local/arm-ntp 此参数指明,编译后运行make install将会将生成的目标程序、库、帮助、配置等安装到这个目录。
3) CFLAGS=-I/usr/local/arm/3.3.4/arm-linux/sys-root/usr/include指明在编译时的参数,-I是指明要包含的头文件目录,就是交叉编译工具链的头文件目录。
4)LDFLAGS="-L/usr/local/arm/3.3.4/arm-linux/sys-root/lib -L/usr/local/arm/3.3.4/arm-linux/sys-root/usr/lib" 指明链接参数,-L指明链接库所在的目录,就是交叉编译工具链的库文件目录。
5)--with-openssl-libdir=/usr/local/arm-ssl/lib 指明openssl库的对应路径。
6)--with-openssl-incdir=/usr/local/arm-ssl/include指明openssl头文件的对应路径。
上面任何一个配置不好,都会有编译或者链接的问题。

3.编译
#make
#make install

在目前生成的过程中libntp、sntp、ntpdate等可以正常编译链接,但是在ntpd编译出现问题,但是和openssl无关是和limits.h头文件相关,可能某个配置问题,尚在解决中。

时间: 2024-10-03 14:03:21

NTP 4.2.8p9在cygwin下的交叉编译的相关文章

cygwin下编译zlib源码

本文介绍在cygwin下编译zlib源码的方法步骤,这个过程虽然简单,但还是有一些需要注意的地方. zlib源码下载地址: http://www.zlib.net/ 下载后,解压就会生成zlib-1.2.8这种文件夹. 1. 编译步骤: 首先,创建一个文件夹,用configure命令指定编译结果到这个文件夹. 其次,make 最后,make install 当然,也可以将最后两步合并为 make & make install 2. 为加深印象,特帖实践过程如下: $ pwd /cygdrive/

shell脚本在cygwin下运行报错: $'\r': command not found

在cygwin 下运行shell脚本,出现"$'\r': command not found",这是win dos与Unix文本编辑方式不同造成的.可以使用cygwin工具dos2unix将script改为unix格式. $ dos2unix test.sh dos2unix: converting file test.sh to UNIX format ... $ sh test.sh 如此便可解决. 参见:http://lxs647.iteye.com/blog/2084375 s

Cygwin下编译的程序不使用Cygwin.dll即可运行的命令 及常用命令简介

cc -mno-cygwin foo.c 1.$ ps PS的相关用法: QuoteUsage ps [-aefl] [-u uid]-f = show process uids, ppids-l = show process uids, ppids, pgids, winpids-u uid = list processes owned by uid-a, -e = show processes of all users-s = show process summary-W = show wi

Cygwin 下的 自动安装工具 apt-cyg

类似 于apt-get 或者 yum Cygwin可以在Windows下使用unix环境Bash和各种功能强大的工具,对于Linux管理员来说不想使用Linux桌面是必备的工具. Cygwin下也有类似Linux下包管理工具apt-cyg,可以方便的通过网络安装各种软件. 1.下载安装:http://cygwin.com/setup.exe 2.选择安装源及软件,如需安装apt-cyg需安装以下软件包: wget tar gawk bzip2 3.Cygwin安装完成后打开Cygwin Term

cygwin下的目录软连接

cygwin是windows下执行linux的工作环境,在cygwin下创建目录软连接需要用到linux指令  ln 执行命令: ln -sv /cygdrive/f/cygwin_workpace  ./ 该命令分为4副本 1. ln    指令名称 2. -sv 3. /cygdrive/f/cygwin_workpace :要生成的软连接指向的目录 4. ./ :生成软连接存放的目录

cygwin 下配置ssh

在公司配置cygwin下的ssh的时候,总是出现类似的错误: Permissions 0660 for '/home/Xinzhe/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /home/Xinzhe/.ssh/id_

Cygwin下使用rsync备份至Linux server时的中文编码问题

14年6月10日 今天在备份数据又出了状况:所有文件名中含有非英文字符的文件都被从Linux server上删除,而当要重新拷贝Windows下该文件时,则显示错误: invalid or incomplete multibyte or wide character 看来是文件名编码出了问题.在Cygwin下查看locale,被设置成了[email protected].而原先设置的是什么也不记得了,但肯定是设置系统locale为Chinese又切换到English造成的.同时发现,date命令

cygwin下用arm-xscale-linux-gnueabi交叉编译libcgi

[背景] 折腾: [记录]用交叉编译器arm-xscale-linux-gnueabi交叉编译一个基于嵌入式Linux的无线HART的项目 期间,却发现,include的路径中有: -I xxx/armxscalelibcgi/include 所以,还需要一个库libcgi. 其中,此处已有源码:libcgi-1.0 [折腾过程] 1.先去看看代码和配置: [email protected] ~/develop/libcgi/libcgi-1.0 $ ls AUTHORS* autogen.sh

cygwin下java报错“找不到或无法加载主类”的故障排除

win7 下安装了java,命令行下可以正常运行,cygwin下报错:找不到或无法加载主类. 经排查发现是cygwin的~/.bash_profile中画蛇添足的配置了$CLASSPATH: JAVA_HOME="/cygdrive/d/Program Files/Java/jdk1.8.0_66"CLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"PATH="