<div>Hi All,</div><div><br></div><div>I need help figuring out the correct compiler switched for embedding mzscheme in</div><div>a C application on Mac OS 10.5.</div><div><br></div><div>I succeeded in compiling the example code in </div>
<div><br></div><div>    <a href="http://docs.plt-scheme.org/inside/overview.html#(part._embedding)">http://docs.plt-scheme.org/inside/overview.html#(part._embedding)</a></div><div><br></div><div>but running the result was disappointing.</div>
<div><br></div><div>Hopefully I have missed something obvious - but what?</div><div><br></div><div>The mysterios ./pltcur is a symbolic link to /Applications/PLT\ Scheme\ Full\ v4.2.0.2/ .</div><div><br></div><div><br></div>
<div><br></div><div>jasmacair:mzc-experiment jensaxelsoegaard$ /Applications/PLT\ Scheme\ Full\ v4.2.0.2/bin/mzc --c-mods modules.c ++lib scheme/base </div><div><br></div><div>jas: mzc-experiment jensaxelsoegaard$ gcc -L./pltcur/lib/  -I./pltcur/include/ -F./pltcur/lib/ -framework PLT_MzScheme -lmzscheme -lmzgc   embedded.c</div>
<div><br></div><div>jas: mzc-experiment jensaxelsoegaard$ export DYLD_FRAMEWORK_PATH=/Applications/PLT\ Scheme\ Full\ v4.2.0.2/lib/</div><div><br></div><div>jas: mzc-experiment jensaxelsoegaard$ ./a.out &quot;1&quot;</div>
<div>Seg fault (internal error) at 0x87</div><div>Bus error</div><div><br></div><div>jas: mzc-experiment jensaxelsoegaard$ ./a.out 1</div><div>Seg fault (internal error) at 0x87</div><div>Bus error</div><div><br></div><div>
jas: mzc-experiment jensaxelsoegaard$ cat embedded.c</div><div>#include &quot;scheme.h&quot;  </div><div>#include &quot;modules.c&quot;</div><div><br></div><div>static int run(Scheme_Env *e, int argc, char *argv[])</div><div>
{</div><div>  Scheme_Object *curout;</div><div>  int i;</div><div>  mz_jmp_buf * volatile save, fresh;</div><div>  </div><div>  /* Declare embedded modules in &quot;modules.c&quot;: */</div><div>  declare_modules(e);</div>
<div>  </div><div>  scheme_namespace_require(scheme_intern_symbol(&quot;scheme/base&quot;));</div><div>  </div><div>  curout = scheme_get_param(scheme_current_config(),</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>    MZCONFIG_OUTPUT_PORT);</div>
<div>  </div><div>  for (i = 1; i &lt; argc; i++) {</div><div>    save = scheme_current_thread-&gt;error_buf;</div><div>    scheme_current_thread-&gt;error_buf = &amp;fresh;</div><div>    if (scheme_setjmp(scheme_error_buf)) {</div>
<div>      scheme_current_thread-&gt;error_buf = save;</div><div>      return -1; /* There was an error */</div><div>    } else {</div><div>      Scheme_Object *v, *a[2];</div><div>      v = scheme_eval_string(argv[i], e);</div>
<div>      scheme_display(v, curout);</div><div>      scheme_display(scheme_make_char(&#39;\n&#39;), curout);</div><div>      /* read-eval-print loop, uses initial Scheme_Env: */</div><div>      a[0] = scheme_intern_symbol(&quot;scheme/base&quot;);</div>
<div>      a[1] = scheme_intern_symbol(&quot;read-eval-print-loop&quot;);</div><div>      scheme_apply(scheme_dynamic_require(2, a), 0, NULL);</div><div>      scheme_current_thread-&gt;error_buf = save;</div><div>    }</div>
<div>  }</div><div>  return 0;</div><div>}</div><div><br></div><div>int main(int argc, char *argv[])</div><div>{</div><div>  return scheme_main_setup(1, run, argc, argv);</div><div>}</div><div><br></div><br>-- <br>Jens Axel Søgaard<br>
<br><br>