c语言怎么连接库,C语言库函数的连接
以前没怎么注意这个,知道今天搞驱动的时侯才注意到!我在debugman上自问自答,这里在写的详细一点:
现在最新的WDK6001.18002,改了驱动入口点
/entry:GsDriverEntry@8
“Windows Vista and Windows Server 2008 x86 Checked”的驱动连接了
1>E:/WINDDK/6001~1.180/lib/wlh/i386/BufferOverflowK.lib
1>E:/WINDDK/6001~1.180/lib/wlh/i386/ntoskrnl.lib
1>E:/WINDDK/6001~1.180/lib/wlh/i386/hal.lib
1>E:/WINDDK/6001~1.180/lib/wlh/i386/wmilib.lib
用WDK(6001.18002)编译的,但其实的编译器是vs2005的!
VC6的C库函数连接
/MD link with MSVCRT.LIB /MDd link with MSVCRTD.LIB debug lib
/ML link with LIBC.LIB /MLd link with LIBCD.LIB debug lib
/MT link with LIBCMT.LIB /MTd link with LIBCMTD.LIB debug lib
VS2008、VS2005、WDK6001的C库函数连接
/MD 与 MSVCRT.LIB 链接
/MT 与 LIBCMT.LIB 链接 /MDd 与 MSVCRTD.LIB 调试库链接
/MTd 与 LIBCMTD.LIB 调试库链接
其实VC6的很多参数,到后来都有改动!!
C库函数是由编译时(CL)的上面几个参数指定的(这几乎被ms定死)
/Zl 从.obj 文件中移除默认库名(仅限 x86),VC6中没有
/NODEFAULTLIB //Link的时侯忽略obj中指定的默认库
但奇怪的是编译驱动的时侯没有指定任何C库函数,其实这里真正的奥秘是:
/Oi 生成内部函数
弄了个例子,(没有加/Oi)
正在链接...
1>11.obj : error LNK2019: 无法解析的外部符号 _memcmp,该符号在函数 _main 中被引用
1>11.obj : error LNK2019: 无法解析的外部符号 __RTC_CheckEsp,该符号在函数 _main 中被引用
1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_Shutdown
1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_InitBase
1>LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup
正在链接...(加/Oi)
1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_Shutdown
1>11.obj : error LNK2001: 无法解析的外部符号 __RTC_InitBase
1>LINK : error LNK2001: 无法解析的外部符号 _mainCRTStartup
1>./Debug/11.exe : fatal error LNK1120: 3 个无法解析的外部命令
豁然开朗:
_disable
_outp
fabs
strcmp
_enable
_outpw
labs
strcpy
_inp
_rotl
memcmp
strlen
_inpw
_rotr
memcpy
_lrotl
_strset
memset
_lrotr
abs
strcat
可以intrinsic那么多函数啊,,哈哈……
其实用IDA分析obj文件也能看出点名堂来……
换句话说,如果调用上面名单之外的库函数,而ntosknrl又没导出的,就不行了…………
c语言怎么连接库,C语言库函数的连接相关推荐
- c语言在线练习题库,C语言练习题库(含答案).doc
C语言习题题库C语言习题题库C语言习题题库 程序填空 共2题 第1题 /*------------------------------------------------------- [程序填空] ...
- 用g++编译生成动态连接库*.so的方法及连接
用g++编译生成动态连接库*.so的方法及连接 1.动态库*.so的编译 这里我们用到4个文件,它们分别为:SoDemoTest.h.one.cpp.two.cpp.three.cpp.它们的内容如下 ...
- c语言上级题库,c语言上级题库.doc
c语言上级题库 1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中. 答案: int fun ...
- c语言不安全库_C语言中不安全的库函数及解决方案
函数严重性解决方案gets 最危险 使用 fgets(buf, size, stdin).这几乎总是一个大问题!strcpy 很危险 改为使用 strncpy ...
- c语言常用的库,C语言的一些常用标准库分享
有很多工程师喜欢自己封装一些标准库已有的函数,其实自己封装的函数,并不一定比标准库好,有时候反而代码更冗余,且有bug.下面就来分享一下C语言常见的一些标准库. 标准头文件包括: 一.标准定义() 文 ...
- c语言编写词库_C语言课程设计--电子生词库软件
C语言课程设计--电子生词库软件 程序设计基础实训任务书程序设计基础实训任务书 题目电子生词库软件 学生姓名 学号 班级 题目类型软件工程(R) 指导教师 一.设计目的一.设计目的 1.进一步掌握和利 ...
- c语言上机考题库,C语言上机考题库.doc
2006年9月上机考试题库 说明:上机考试正式系统题库中共有50套题目,考生随机从中抽取一套进行考试.例如,如果你考的是二级C语言上机考试,那么你输入准考证号并确认后,机器将从正式题库的50套题中随机 ...
- java支持库 易语言_Java支持库|简易语言源网络|易语言资源网| e5a5x
Java支持库 支持库名称: Java支持库2.0版 相关文件: C: \ ProgramFiles(x86)\ e \ lib \ Javalib.fne 数字签名: F3DA9F65E55F47c ...
- C语言的集合库C语言STL
不知道这个题目是否合适,因为C语言是没有模板的,好吧,我承认,用集合来描述比较合适.下面是项目地址: https://github.com/mtaxot/c-collection 那么强大的C语言,当 ...
最新文章
- php点击字切换验证码,PHP生成图片验证码、点击切换实例 Web程序 - 贪吃蛇学院-专业IT技术平台...
- PHP--认识Smarty模板引擎
- 年末最大AI盛典!2020深度学习开发者峰会报名启动
- ubuntu安装VMware出错
- 状压[Jxoi2012]奇怪的道路
- ModuleNotFoundError: No module named ‘keras.api‘
- Zabbix实战-简易教程--WEB类--Nginx
- mac环境变量配置文件加载优先级
- 谷歌地图动画_Google地图上的动画路线
- stm32f401 边沿捕获_stm32f401ret6例程 嵌入式1 STM32F401开发实战1—LED闪烁和串口收发数据 - 硬件设备 - 服务器之家...
- 网络游戏外挂制作(3)
- 关于MySQL8的URL和Driver的写法
- 纯字母域名批量注册的详细步骤
- 文献阅读笔记 # Bitcoin: A Peer-to-Peer Electronic Cash System
- Scala - IEEE754 浮点标准与 Float / Double 转换
- 2022.1.3bili上面登录:139 733xxx
- 查询数据库重复记录方法
- Java Web关键字填空
- c++课程设计日历记事本
- Covenant利用分析