如何在 Windows 上构建 MiKTeX?

如何在 Windows 上构建 MiKTeX?

我想构建 MiKTeX(特别是 pdflatex)来解决pdflatex 的隐私问题改变。

我跟着如何。

在新的 Windows 7 SP1(32 位)安装中,我安装了:

  • CMake(cmake-2.8.12.2-win32-x86.exe)
  • 带有 SP1 的 Visual Studio C++ 2008(VS2008ExpressWithSP1ENUX1504728.iso)
  • Cygwin(默认带有 bison、flex 和 diffutil)
  • ActivePerl(ActivePerl-5.20.1.2000-MSWin32-x86-64int-298557.msi)
  • libxslt(libxslt-1.1.26.win32.zip)
  • MiKTeX basic 带有“即时安装缺失包”功能 (basic-miktex-2.9.5105.exe)
  • HTML 帮助研讨会
  • 适用于 Windows Server 2008 的 Windows SDK(6.0.6001.18000.367-KRMSDK_EN.iso)
    • 仅选择 Windows Headers and Libraries 和 Windows Development Tools
  • 图像魔法 (ImageMagick-6.9.0-0-Q16-x86-dll.exe)

在 Windows 中PATH我附加了:

;C:\cygwin\bin;C:\libxslt-1.1.26.win32\bin;C:\Program Files\HTML Help Workshop

我将 MiKTeX 源代码 (miktex-2.9.4106.tar.bz2) 提取到C:\miktex

C:\miktex\CMakeLists.txt我设置NO_GUI = TRUE

我启动了 Visual Studio 2008 命令提示符并输入以下内容:

cd \miktex
cmake -G "NMake Makefiles"
nmake

构建因下列情况而停止:

[ 15%] Building C object Libraries/3rd/obsdcompat/CMakeFiles/MiKTeX209-obsdcompat.dir/bsd-asprintf.c.obj
bsd-asprintf.c
c:\miktex\libraries\3rd\obsdcompat\defines.h(91) : error C2061: syntax error : identifier 'u_int8_t'
c:\miktex\libraries\3rd\obsdcompat\defines.h(91) : error C2059: syntax error : ';'
c:\miktex\libraries\3rd\obsdcompat\defines.h(92) : error C2061: syntax error : identifier 'u_int16_t'
c:\miktex\libraries\3rd\obsdcompat\defines.h(92) : error C2059: syntax error : ';'
c:\miktex\libraries\3rd\obsdcompat\defines.h(93) : error C2061: syntax error : identifier 'u_int32_t'
c:\miktex\libraries\3rd\obsdcompat\defines.h(93) : error C2059: syntax error : ';'
NMAKE : fatal error U1077: 'C:\PROGRA~1\MICROS~1.0\VC\bin\cl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

我能够解决此错误和后续错误,但每次解决后,构建再次停止,并出现与解决方法无关的其他错误。我最终放弃了怀疑我的构建环境或我使用它的方式一定有问题(因此详细说明),但我不知道问题是什么。

答案1

不要在源目录中构建。

历史:

在构建之前根据需要修补pdftex.web和(例如,分别搜索和这些文件)将导致 MiKTeX pdftex 二进制文件不会添加未明确指定的 PDF 元数据/属性。pdftoepdf.ccPrograms\TeXAndFriends\pdftex.Fullbanner.FileName

相关内容