所以我正在尝试编译一个使用PIN和Python的大项目。问题是PIN有一些类型与Python相同。
所以我所做的是创建一个名称空间PIN::
,以避免ambiguous symbol
errors。
所以现在代码编译得很好但是链接器没有找到PIN符号,因为它试图使用我的自定义PIN::
命名空间找到它们而lib
文件没有它。
这是错误:
1>main.obj : error LNK2001: unresolved external symbol "void __cdecl PIN::LEVEL_PINCLIENT::PIN_UnlockClient(void)" (?PIN_UnlockClient@LEVEL_PINCLIENT@PIN@@YAXXZ)
我是否可以指定搜索LEVEL_PINCLIENT::PIN_UnlockClient(void)
而不是PIN::LEVEL_PINCLIENT::PIN_UnlockClient(void)
所需的链接器?
干杯
答案 0 :(得分:1)
解决链接器问题的一种方法是创建自己的DLL,作为PIN和Python的包装器。
在PIN包装器DLL中,创建PIN
命名空间并在namespace
中添加包装函数。与Python包装器DLL相同。
从其余代码中,使用namespace PIN
和namespace Python
中的函数。