我正在 MS Visual Studio 2005 的解决方案中开发一个子项目。该子项目是一个 Windows CE 6.0 服务(作为 DLL),它包含在 Windows CE 6.0 操作系统项目中。在子项目中,我需要使用“ceosutil.lib”中的一些函数(svsutil.hxx 是 header ),但我无法将其链接到我的子项目。构建时,我收到以下类型的错误:“错误 LNK2019:无法解析的外部符号”。
有趣的是,当我将项目类型切换为静态库时,它编译没有问题。如果我启动一个新的 DLL 项目(独立项目,而不是子项目),它也可以工作(“ceosutil.lib”已列在项目和所有配置的“附加依赖项”中)。
请帮忙!
最佳答案
我已经找到了我自己问题的答案。解决方案是将库的名称(“ceosutil.lib”,在空格之后)添加到子项目属性的“链接”选项卡中的“附加库”字段中:
在 MS Visual Studio 2005 中: 鼠标右键单击子项目名称 -> 属性 -> 链接选项卡 -> 其他库。
默认值为:$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib
新值:$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib ceosutil.lib
更新: 打开子项目(鼠标右键 btn -> 打开)并将库的路径粘贴到 TARGETLIBS 部分中甚至更容易。结果将完全相同:
目标库=\ $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib\
关于visual-studio-2005 - 项目中不能包含静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101250/