不能在项目中包含静态库

时间:2012-04-11 06:52:31

标签: visual-studio-2005 lnk2019

我正在MS Visual Studio 2005的解决方案中开发子项目。该子项目是Windows CE 6.0服务(作为DLL),它包含在Windows CE 6.0 OS项目中。在子项目中,我需要使用“ceosutil.lib”中的一些函数(svsutil.hxx是标题),但我无法将其链接到我的子项目。构建时,我得到以下类型的错误:“错误LNK2019:未解析的外部符号”。

有趣的是,当我将项目类型切换到静态库时,它编译没有问题。如果我启动一个新的DLL项目(独立项目,而不是子项目),它也可以工作(“ceosutil.lib”已经列在项目的附加依赖项和所有配置中。)

请帮忙!

1 个答案:

答案 0 :(得分:2)

我找到了自己问题的答案。解决方案是将库的名称(“ceosutil.lib”,在空格后面)添加到子项目属性的“链接”选项卡中的“附加库”字段:

在MS Visual Studio 2005中: 鼠标右键单击子项目名称 - >属性 - >链接标签 - >其他图书馆。

默认值为:$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib

新值:$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib ceosutil.lib

更新: 打开子项目(右键btn - >打开)更容易,并将路径粘贴到TARGETLIBS部分中的库。结果将完全相同:

TARGETLIBS = \     $(_ PROJECTROOT)\ cesysgen \ sdk \ lib \ $(_ CPUINDPATH)\ coredll.lib \