【发布时间】:2018-11-24 08:29:03
【问题描述】:
我正在尝试构建一个与 64 位 C 运行时库动态链接的 64 位静态 C 库。
C 库在一个文件中包含一些无法构建的程序集。下面是代码:
JMEMDOSA_TXT segment byte public 'CODE'
assume cs:JMEMDOSA_TXT
public _jdos_open
public _jdos_close
public _jdos_seek
public _jdos_read
...
我得到的编译器错误是:
A2071:初始化器幅度对于指定大小来说太大
这里是完整的 asm 源文件的链接: https://github.com/cloudflare/jpegtran/blob/master/jmemdosa.asm
【问题讨论】:
-
链接的源代码不是 64 位 Windows 源代码,而是 16 位 DOS 源代码。我怀疑你可以用它构建一个 64 位库。
-
谢谢迈克尔。我在研究 64 位寄存器时也发现了这一点,并决定暂时使用 C 代码。你证实了我的想法。我以为它是 32 位的,但更糟糕的是它是 16 位的。这证明了 C 代码是短期内从这里向前发展的方式。感谢您的帮助!
标签: visual-studio-2015 imagemagick jpeg x86-64 masm