链接器在 .lib 中看不到函数
Linker doesn't see function inside .lib
我正在Visual Studio C/C++中编写一个小型Win32应用程序,该应用程序使用WDK与HID设备进行通信。
我在选项>项目和解决方案>VC++目录中添加了以下包含目录:
D:WinDDK7600.16385.1incddk
D:WinDDK7600.16385.1incapi
和以下库目录:
D:WinDDK7600.16385.1libwin7i386
我还将以下lib文件设置为项目属性>配置属性>链接器>附加依赖项:
hid.lib
但当我尝试编译时,我得到:
error LNK2028: unresolved token (0A000040) "unsigned char __stdcall HidD_SetOutputReport(void *,void *,unsigned long)" ...
尽管如此,这应该在hid.lib 中
我是不是错过了什么?
--更新--在SooWeiTan的建议下,我启用了Properties->Linker->Show Progress,现在我在这里看到了以下内容:
1> Searching C:Program FilesMicrosoft SDKsWindowsv6.0A\libMSCOREE.lib:
1> Found __CorExeMain@0
1> Loaded MSCOREE.lib(mscoree.dll)
1> Found __IMPORT_DESCRIPTOR_mscoree
1> Referenced in MSCOREE.lib(mscoree.dll)
1> Loaded MSCOREE.lib(mscoree.dll)
1> Found mscoree_NULL_THUNK_DATA
1> Referenced in MSCOREE.lib(mscoree.dll)
1> Loaded MSCOREE.lib(mscoree.dll)
1> Searching D:WinDDK7600.16385.1libwin7i386hid.lib:
1> Searching C:Program FilesMicrosoft SDKsWindowsv6.0A\libkernel32.lib:
...
...
...
由此,我认为它在hid.lib中找不到任何有趣的东西,而它应该找到我的麻烦函数。。。知道为什么会发生这种事吗?
我看你可能有MS SDK。
- 启动cmd.exe
- 转到"C:\Program Files\Microsoft SDK \Windows\v7.1\Bin"--您的版本可能是6.0
- 运行"SetEnv.cmd/x86"
- 转到带有lib的目录
- 运行"dumpbin/exports hid.lib | findstr HidD_SetOutputReport"
如果什么都没有得到,那么lib显然不包含该函数(不妨只尝试函数名称的某些部分来确保)。如果你得到了一些东西,那么指向lib的路径是错误的。这确实是造成问题的全部原因。如果运行setenv有问题,另一种方法应该是转到您正在使用的MSVC的目录,然后转到VC\bin并运行vcvars32.bat,这应该做同样的事情。
我很惭愧地说我发现了问题:(.我是C:\C++noob,但仍然…
当我在C++文件中导入C模块时,include:|
extern "C"
相关文章:
- handleMessage看不到我的类和函数
- 为什么 connect() 函数看不到插槽?
- 为什么即使链接器找到目标文件,我的程序也看不到函数定义?
- C++概念看到我的类型的函数,但看不到 std::vector 的函数
- unique_ptr看不到派生类的自定义构造函数
- 看不到我在 c++ 中传递给另一个函数的主函数中的值
- 为什么命名空间中的函数看不到全局定义的运算符<<?
- 单例:为什么不需要删除并且看不到析构函数调试消息
- 我需要创建一个函数在用户下打印"=",但由于变量是使用 main() 声明的,因此函数看不到参数
- 为什么内联函数会导致编译器看不到OpenGL函数
- 友元函数看不到私有成员变量
- 为什么在从 c++ 中的函数返回对象的情况下,我看不到正在调用的复制构造函数?
- 在类模板上覆盖方法,编译器看不到它,只能看到其他重载函数
- 为什么内联函数看不到作用域内部?
- 链接器看不到在基类(纯虚拟)中定义的模板函数
- 编译器看不到函数,可以看到所有其他以相同方式使用的函数
- 在某些情况下,Visual Studio 看不到函数声明
- 为什么抽象类的实现看不到重载纯虚函数
- 为什么gcc链接器看不到我的析构函数
- C++lambda,看不到函数和参数