现在的位置: 首页 > 综合 > 正文

Win32下libsmi编译

2013年04月20日 ⁄ 综合 ⁄ 共 1250字 ⁄ 字号 评论关闭

libsmi开发包可以用作SNMP开发,最近需要在windows平台编译出libsmi的lib。资料提示通过NMAKE来编译,但总是会报错,加上对makefile不是很了解,所以一直没有成功。无奈之下试试直接在IDE中编译,没有想到竟然成功了,很是高兴,具体步骤如下:

1. 从http://www.ibr.cs.tu-bs.de/projects/libsmi/download.html?lang=de上download libsmi-0.4.5的源码包。解压后会看到lib,win等子目录和文件。lib里面放的是源文件及头文件,win下面放的是用来在windows下编译的源文件和头文件。

2. 在VC6.0中新建“Win32 Static Library”工程,然后添加所需要的源文件。分为三个步骤:

(1)添加lib和win目录下的源文件

(2)创建unistd.h头文件,文件内容如下:

#ifndef _UNISTD_H#define _UNISTD_H

#include <io.h>#include <process.h>

#endif /* _UNISTD_H */

并将unistd.h放到lib目录下(unistd.h是linux中的头文件,在windows下不存在,所以要自己创建)

(3)添加lib和win目录下的头文件

3. 设置VC6.0的编译环境,具体步骤如下:

(1) project->settings->c/c++, category选择Code Generation,use-runtime library选择Multithreaded DLL

(2) tools->options->directories, 在include files中添加lib和win两个目录的路径

4. Build

5. 虽然会出现warnning,但不影响编译结果。在VC工程中做一些设置就可以是用libsmi提供的方法来做开发了。具体设置如下:

(1) project->settings->link,在object/library modules下面添加上面编译出来的.lib文件
(2) 在tools->options->directories->include files中添加添加smi.h所在的目录,或者直接把smi.h添加到系统的头文件目录中

(3) 在tools->options->directories->Library files中添加编译出来的.lib文件所在的目录,或者直接把该.lib文件添加到系统的lib文件目录中
(4) project->settings->c/c++, category选择Code Generation,use-runtime library选择Multithreaded DLL(不然在link的过程中会出现很多“MSVCRT.lib(MSVCRT.dll) : error LNK2005”的错误,这是因为DLL和LIB被同时引用造成的)

(5) 然后在我们的程序中#include<smi.h>,就可以开始做SNMP的开发了,GO!

抱歉!评论已关闭.