4485|13

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么我的testsql.exe无法运行? [复制链接]

我在学用sqlite数据库. 现在成功编译了sqlite3.lib. 并且我也用EVC写了个测试程序testsql.exe.
由于testsql.exe文件编译时用到了sqlite3.lib库文件. 因此我将sqlite3.lib和testsql.exe同时加到nk.bin内核文件中了.
可是我运行testsql.exe文件后提示"找不到"testsql"(或他的某一个组件).请确认路径和文件名正确并且所需要的库全部可用".
为什么我的testsql.exe无法运行?

最新回复

谢谢大家!  详情 回复 发表于 2008-4-10 17:14
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
确保sqlite3.lib已经在os中存在,并且引用的路径正确。

或者sqlite3.lib已经在\\windows目录下
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
sqlite3.lib和testsql.exe在同一个路径\\windows下. 只要不调用sqlite3.lib中的API函数. 运行testsql.exe就没问题. 只要程序中有sqlite3.lib的API就无法打开该.exe文件.
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
为什么要加到NK中去啊? 这个lib又不需要注册的,直接跟exe放在一起就可以, 程序内将lib添加到Link中去就可以.
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

5
 
程序内将lib添加到Link中去就可以. ===>这是什么意思啊.
我将两个文件直接copy到CE设备中去.打开这个exe文件就出错. 可能是exe文件中用到的API无法自动到那个lib文件中去找的原因.
请问如何CE下一个EXE文件执行需要某一个lib静态库时候. 是怎么自动到那个lib文件中去找库文件?
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
CE需要使用完全路径,不支持当前目录的概念。所以LZ加载DLL,是否写成:“\\windows\\sqlite3.lib”?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
我的lib是静态库. 不是DLL动态库文件. 我是在bib文件中将这两个文件一起加到nk.bin内核里的.
因此在ce目标板上. 他们都在\\windows\\目录下的.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
都在Windows目录,也要写全路径。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢91program的解答.
您说的写全路径是写在哪里? 我在EVC的程序里没有注明路径. 在EVC下setting->link下的object/library modules下加了sqlite3.lib.
编译OK. 是否如果要在CE目标板中运行还的使用什么方法在exe文件的源代码中动态加载这个lib库?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

10
 
你的静态库的话应该在编译时就被编译到你的exe中去了。
在使用中就不需要lib文件了。

1、可能你用的不是静态库而是动态库。
在编译时需要用到.lib,但是程序运行时却需要.dll。

看你的情况有可能是这种。
需要你加入dll.

你可以在你的设备中的exe目录下加入dll来解决。

2、还有一种情况,就是你的静态库的编译选择的sdk类型和当前使用的平台不匹配。
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

11
 
1. 我编译的时候用的静态库. 没有用过DLL. 编译与运行时所需要的库不是一样的吗? 请教中..
2. 再次检查了我的静态库编译所选择的SDK与CE目标SDK平台一致.

看来只能自己写个测试程序来测试CE下怎样使用LIB库文件啦
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

12
 
Alt + F7
Link...
添加 XXXX.lib
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

13
 
动态库在编译时是需用用到一个.lib的,只是在编译时使用。
但是在实际使用中还是需要一个dll的。

静态库和动态库的建立时的选择是不一样的。

静态库建立后生成的是一个lib,然后程序使用后,在发布时不需要提供额外的库文件。

动态库建立后生成一个lib, 一个dll.
其中lib是和一个.h文件配合使用,供开发用。该lib只是一个链接库,目的是让compile, link能通过。

dll是发布后的exe实际运行时需要调用的。

你看看你的库编译后在生成的目录下有没有dll文件。
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

14
 
谢谢大家!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表