<div dir="ltr">Hi Juanjo,<br><br>Sorry for being unclear!<br><br>The example sources in embed-windows.tar from the email <br><br> - Re: [Ecls-list] Example about building / loading ECL libraries<br> <a href="http://sourceforge.net/mailarchive/message.php?msg_id=30912414">http://sourceforge.net/mailarchive/message.php?msg_id=30912414</a><br>
<br>(see 'embed-windows.tar', <a href="http://sourceforge.net/mailarchive/attachment.php?list_name=ecls-list&message_id=CAMCvb%3DAZ4XtzpQ3kwc7qhjctNXTc5bhqWP0s4-cHVnhxXKf6AQ%40mail.gmail.com&counter=2">http://sourceforge.net/mailarchive/attachment.php?list_name=ecls-list&message_id=CAMCvb%3DAZ4XtzpQ3kwc7qhjctNXTc5bhqWP0s4-cHVnhxXKf6AQ%40mail.gmail.com&counter=2</a> )<br>
<br>show how to compile the files hello-lisp.asd and hello-lisp.lisp on Windows into the static library hello-lisp.lib which than is used to build hello.exe from hello.c.<br><br>the line <br><br>ecl -norc -load compile.lisp<br>
<br>in the Makefile is responsible for building the static library based on the lisp build file compile.lisp:<br><br>=== compile.lisp ===<br>(ext:install-c-compiler)<br>(require :asdf)<br>(push "./" asdf:*central-registry*)<br>
(asdf:make-build :hello-lisp :type :static-library :move-here "./")<br>(quit)<br>===<br><br>So my fist and probably naive attempt to build a shared library was to change ':type :static-library' to ':type :shared-library' resulting in the following file:<br>
<br>=== compile.lisp ===<br>(ext:install-c-compiler)<br>(require :asdf)<br>(push "./" asdf:*central-registry*)<br>(asdf:make-build :hello-lisp :type :shared-library :move-here "./")<br>(quit)<br>===<br>
<br>But unfortunately nothing happens when trying to use this file to build a shared library:<br><br>$ ls -la<br><br>total 28<br>drwxr-xr-x 1 dietrich 0 Jan 1 1970 .<br>drwxr-xr-x 1 dietrich 0 Jan 1 1970 ..<br>-rw-r--r-- 1 dietrich 636 Jun 24 23:44 compile.lisp<br>
-rw-r--r-- 1 dietrich 453 Jun 24 23:44 hello.c<br>-rw-r--r-- 1 dietrich 64 Jun 24 23:44 hello-lisp.asd<br>-rw-r--r-- 1 dietrich 48 Jun 24 23:44 hello-lisp.lisp<br>-rw-r--r-- 1 dietrich 1259 Jun 24 23:44 Makefile<br>-rw-r--r-- 1 dietrich 342 Jun 24 23:44 README<br>
-rw-r--r-- 1 dietrich 528 Jun 24 23:44 vsenv<br><br>$ ./vsenv ecl.exe -norc -load compile.lisp<br><br>Setting environment for using Microsoft Visual Studio 2010 x64 tools.<br>;;; Loading "E:/Users/dietrich/home/cs/lang/lisp/ecl/diary/2013/06/24/windows/dynamic-link-libraries/bastel100/v100/shared-lib/embed-windows/compile.lisp"<br>
;;; Loading #P"C:/Users/dietrich/home/cs/lang/lisp/ecl/64/git/install/cmp.fas"<br>;;; Loading #P"C:/Users/dietrich/home/cs/lang/lisp/ecl/64/git/install/asdf.fas"<br><br>$ ls -la<br><br>total 28<br>drwxr-xr-x 1 dietrich 0 Jan 1 1970 .<br>
drwxr-xr-x 1 dietrich 0 Jan 1 1970 ..<br>-rw-r--r-- 1 dietrich 636 Jun 24 23:44 compile.lisp<br>-rw-r--r-- 1 dietrich 453 Jun 24 23:44 hello.c<br>-rw-r--r-- 1 dietrich 64 Jun 24 23:44 hello-lisp.asd<br>-rw-r--r-- 1 dietrich 48 Jun 24 23:44 hello-lisp.lisp<br>
-rw-r--r-- 1 dietrich 1259 Jun 24 23:44 Makefile<br>-rw-r--r-- 1 dietrich 342 Jun 24 23:44 README<br>-rw-r--r-- 1 dietrich 528 Jun 24 23:44 vsenv<br><br>So now I wonder what I have to do in order to build a shared library...<br>
<br>One approach would be to change the Makefile and / or the compile.lisp file, but I am not sure how;<br><br>another one might be to compile the lisp files to .h, .c, .data files first and build a shared library "by hand" using 'cl' and 'link'.<br>
<br>Which approach would be the better one? <div><br></div><div>Or is there some better way to solve this problem?<br><br>Thanks again,<br><br>Dietrich<br><div style><br></div><div style><br></div><div><br></div><div><br>
</div><div><br></div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 24, 2013 at 9:50 PM, Juan Jose Garcia-Ripoll <span dir="ltr"><<a href="mailto:juanjose.garciaripoll@gmail.com" target="_blank">juanjose.garciaripoll@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="im"><br><div class="gmail_quote">On Mon, Jun 24, 2013 at 2:34 PM, Dietrich Bollmann <span dir="ltr"><<a href="mailto:dietrich@formgames.org" target="_blank">dietrich@formgames.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Using <span style="font-family:arial,sans-serif;font-size:13px">:shared-library at the place of </span><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">:static-library in the </span><span style="font-family:arial,sans-serif;font-size:13px">asdf:make-build command seems not to be enough - at least not under Windows.</span></div>
</blockquote></div><br></div>What does it mean "not enough". Please, be more accurate on your reports.<div class="im"><br><br clear="all"><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br>
<a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a>
</div></div></div>
</blockquote></div><br></div>