我的链接器报告错误如下:
unresolved external symbol "unsigned char __fastcall BD_CLC(int,int)"...
但我认为所有对此函数的引用以及函数的定义都是以下形式:
__forceinline UBYTE BD_CLC(int swap,int elem);
我甚至使用“生成预处理文件”进行了编译并完成了输出。在使用BD_CLC的每个文件中,该函数被声明为
__forceinline UBYTE BD_CLC(int swap,int elem);
当然实际的函数定义被声明为
__forceinline UBYTE BD_CLC(int swap,int elem) { ... }
有什么想法吗?
答案 0 :(得分:3)
由于你已经声明了函数__forceinline,你需要确保在调用函数的任何地方都可以看到定义 - 而不仅仅是声明。
答案 1 :(得分:1)
我认为您可能必须关闭/ GR“Calling Convention”编译器选项。也许__fastcall导致链接器错误。
/ Gr指定__fastcall调用 所有功能的约定除外 C ++成员的功能和功能 标记__cdecl或__stdcall。所有 __fastcall函数必须有原型。
答案 2 :(得分:0)
我会尝试删除__forceinline属性。