.asm 调用生成的lib,在c++中调用出现的LNK2019错误??
先是一个c写的一个调用.asm文件里的汇编,
.asm文件的实体如下
include起作用吗?
%include "D:\server\客户端\library\MotorH264Encoder\i386\i386inc.asm"
;-----------------------------------------------------------------------------
; void x264_stack_align( void (*func)(void*), void *arg );
;-----------------------------------------------------------------------------
cglobal x264_stack_align
push ebp
mov ebp, esp
sub esp, 4
and esp, ~15
mov ecx, [ebp+8]
mov edx, [ebp+12]
mov [esp], edx
call ecx
mov esp, ebp
pop ebp
ret
.h文件里声明
#if defined(ARCH_X86) && defined(HAVE_MMX)
void x264_stack_align( void (*func)(x264_t*), x264_t *arg );
#else
#define x264_stack_align(func,arg) func(arg)
#endif
然后就在.c里面调用该函数x264_stack_align,该lib 编译成功,
但是调用lib就出现连接错误
264Encoder.lib(encoder.obj) : error LNK2019: 无法解析的外部符号 _x264_stack_align,该符号在函数 _x264_slices_write 中被引用
大家给看看那里出的问题,还是编译那里要设置