【问题标题】:How do you compile a Pharo VM without an image?如何在没有镜像的情况下编译 Pharo VM?
【发布时间】:2014-03-16 06:09:26
【问题描述】:

我已经克隆了虚拟机并为我的平台安装了所有依赖项。现在我有点困惑,因为有几个guides 建议应该启动Pharo 图像来生成从Slang 翻译的C 源代码。

"Unix"
PharoVMBuilder buildUnix32.
"OSX"
PharoVMBuilder buildMacOSX32.
"Windows"
PharoVMBuilder buildWin32.

但是当您无法在您的平台中启动虚拟机时,您如何生成虚拟机?这听起来像是先有鸡还是先有蛋的问题。

这意味着如果您无法在该平台上启动映像,则无法构建 VM?

【问题讨论】:

    标签: virtual-machine smalltalk pharo


    【解决方案1】:

    如果您按照 Esteban 的建议从 CI 服务器下载预生成的源,则不需要从任何存储库克隆的 pharo-vm 源。只需在新文件夹中解压缩并从那里构建。

    假设您在 c:\phs 中有新的源,打开目录.cmake 并将硬编码路径重命名如下:

    set(topDir "c:/phs/")
    set(buildDir "c:/phs/build")
    set(thirdpartyDir "${buildDir}/thirdparty")
    set(platformsDir "c:/phs/platforms")
    set(srcDir "c:/phs/src")
    set(srcPluginsDir "${srcDir}/plugins")
    set(srcVMDir "${srcDir}/vm")
    set(platformName "win32")
    set(targetPlatform ${platformsDir}/${platformName})
    set(crossDir "${platformsDir}/Cross")
    set(platformVMDir "${targetPlatform}/vm")
    set(outputDir "c:/phs/results")
    

    由于您无法启动 VM,我想您至少需要更改用于在 CI 服务器中生成源代码的编译标志。它们在 c:\phs\build\CMakeLists.txt 中,特别是以下标志:

    • -march=...(您的处理器架构,搜索 Safe Cflags)
    • 删除抑制调试选项的 -g0
    • 移除 -O2(优化)
    • 删除-DNDEBUG
    • 将 -DDEBUGVM=0 修改为 -DDEBUGVM=1

    最后启动构建脚本

    cd /c/phs/build
    bash build.sh
    

    【讨论】:

      【解决方案2】:

      您需要在外部预先生成源或从其他地方获取预先生成的源。

      假设你要编译一种unix,你可以从这里下载预生成的源代码:

      https://ci.inria.fr/pharo/view/3.0-VM/job/PharoSVM/Architecture=32,Slave=vm-builder-linux/lastSuccessfulBuild/artifact/sources.tar.gz(用于堆栈虚拟机)

      https://ci.inria.fr/pharo/view/3.0-VM/job/PharoVM/Architecture=32,Slave=vm-builder-linux/lastSuccessfulBuild/artifact/sources.tar.gz(用于 cog 虚拟机)

      【讨论】:

      • 不幸的是,它不适用于 Windows。运行 bash build.sh 脚本后,出现 --Configuring done CMake Error at CMakeLists.txt:20 (add_executable): Cannot find source file: c:/builds/workspace/PharoVM/Architecture/32/Slave/vm- builder-win/cog/src/vm/ cogit.c 尝试过的扩展 .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx - - 构建文件已写入:C:/pharo-sources/build make: *** 没有指定目标,也没有找到 makefile。停止。如何摆脱硬编码路径?
      • 下载源代码后能否发表评论,是在 pharo-vm/ 文件夹中解压缩它们还是使用源代码替代 pharo-vm?因为没有任何效果
      • 你能检查为windows生成的相应源吗? ci.inria.fr/pharo/view/3.0-VM/job/PharoSVM下应该有一个类似的文件供windows slave使用。
      猜你喜欢
      • 2012-06-26
      • 2018-09-03
      • 2020-03-25
      • 2021-12-19
      • 1970-01-01
      • 2015-03-12
      • 2013-02-16
      • 1970-01-01
      • 2012-08-23
      相关资源
      最近更新 更多