Newsgroup: it.comp.lang.c++
Titolo: compilare Powerloom

Ho cercato di compilare la versione C++ di PowerLoom
(
http://www.isi.edu/isd/LOOM/PowerLoom/
) in C++ usando g++, come
indicato nel manuale
(
http://www.isi.edu/isd/LOOM/PowerLoom/documentation/manual/manual_9.html#System
Requirements), ma ottengo solo questo:
--version non atteso.
--version non atteso.
= non atteso.
--version non atteso.
= non atteso.
--version non atteso.
--version non atteso.
= non atteso.
--version non atteso.
= non atteso.
--version non atteso.
--version non atteso.
= non atteso.
--version non atteso.
= non atteso.
--version non atteso.
--version non atteso.
= non atteso.
for system in logic logic/extensions  ; do \
          (cd ../${system} ; \
          make --win32 CC=gcc CXX=g++ LINK-MODE= lib;) \
        done
--version non atteso.
system non atteso.
make: *** [update-required-systems] Error 1
Forse dovrei usare una versione diversa di g++? MAgari più vecchia?

 Forse dovrei usare una versione diversa di g++? MAgari più vecchia?
Queste cose non puoi che scoprirle dalla documentazione. In ogni caso
sembra un problema di shell. Non e' che stai cercando di compilare su
Windows un programma scritto per Linux/Unix?
Ciao,
Nicola

Nicola Musatti ha scritto:

La documentazione dice:
To run the C++ version of PowerLoom, you will need a C++ compiler (such
as g++) that supports templates and exception handling. We have
successfully compiled and run PowerLoom with g++ 3.2 and later under
Linux Redhat 8.0 & 9.0, SunOS and MacOS X, and with CygWin 5.0 and MinGW
5.0 under Windows 2000 and XP. Both CygWin and MinGW provide a GNU Unix
environment, but MinGW can generate Windows executables that are fully
standalone. We've also managed to compile PowerLoom under MS Visual C++,
however, we never got the Boehm garbage collector to work. The GC claims
to be very portable, so this should be solvable for somebody with good
knowledge of MS Visual C++.
Non capisco cosa intendi. Credevo di poter ottenere dal codice C++ un
eseguibile per Windows, avevo capito male?
Sinora avevo usato la versione Java di PowerLoom, che gira
tranquillamente sul mio Windows XP. Però capire il funzionamento di
PowerLoom (ah, non l'avevo detto, è un SW per ontologie, io dovrei
usarlo per una tesi di domotica) era solo il primo passo, ora dovrei
iniziare a capire come usarne i comandi dentro a del codice C++ e per
prima cosa volevo provare a compilare l'intero pacchetto.
Avevo capito che CygWin e MinGW fossero delle shell e che la
compilazione fosse fatta (anche sotto windows) con g++, no?

 compilazione fosse fatta (anche sotto windows) con g++, no?
Ni, sono degli ambienti simil-linux/posix che contengono diverse
utility, tra cui anche bash. Il problema mi pare che sia impostare
l'ambiente in modo corretto. Tendenzialmente e' piu' facile farlo con
cygwin, il cui setup e' decisamente facile da usare.
Direi che ti conviene cercare un newsgroup/mailing list di PowerLoom e
postare li' i tuoi dubbi.
Ciao,
Nicola

 Forse dovrei usare una versione diversa di g++? MAgari più vecchia?
hai installato "msys"? Secondo me è quello che ti manca, non credo
che il dos riesca a digerire quel ciclo "for".
ciao!

nivius ha scritto:

Forse ho capito, il codice che cercavo di compilare contiene dei comandi
posix, quindi mi serve una shell Posix/Linux per Windows. Ecco perchè
nella documentazione citano Cygwin e MinGW :-)
Quindi, lanciando il make da dentro msys dovrebbe funzionare?
Appena riesco a lanciare MSYS senza che vada immediatamente in crash provo.
Grazie mille.

nivius ha scritto:

Ho provato con Linux (Ubuntu 7.04 Live) ed ottengo questo:
ubuntu@ubuntu:/media/ACER/powerloom-3.2.13/native/cpp/powerloom$ make
g++ -w -g -O2 -fno-common -DSTELLA_USE_GC -I../stella/cpp-lib/gc/include
 -c -I.. main.cc
make: g++: Command not found
make: *** [main.o] Error 127

 make: g++: Command not found
Mi sembra chiaro che nella versione live della distro che citi non sia 
installato il compilatore :)

Gabriele Greco ha scritto:

Pasticcione come sono, non me ne stupirei :-(
Comunque ho disinstallato gcc (direi che era installato),l'ho
reinstallato, ho lanciato il make ed ottengo questo:
root@ubuntu:/home/ubuntu# sudo apt-get install gcc build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev linux-libc-dev
Suggested packages:
  debian-keyring gcc-4.1-doc lib64stdc++6 manpages-dev autoconf automake1.9
  libtool flex bison gcc-doc glibc-doc libstdc++6-4.1-doc
The following NEW packages will be installed:
  build-essential dpkg-dev g++ g++-4.1 gcc libc6-dev libstdc++6-4.1-dev
  linux-libc-dev
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/8056kB of archives.
After unpacking 33.7MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Selecting previously deselected package linux-libc-dev.
(Reading database ... 91530 files and directories currently installed.)
Unpacking linux-libc-dev (from .../linux-libc-dev_2.6.20-15.27_i386.deb) ...
Selecting previously deselected package libc6-dev.
Unpacking libc6-dev (from .../libc6-dev_2.5-0ubuntu14_i386.deb) ...
Selecting previously deselected package gcc.
Unpacking gcc (from .../gcc_4.1.2-1ubuntu1_i386.deb) ...
Selecting previously deselected package libstdc++6-4.1-dev.
Unpacking libstdc++6-4.1-dev (from
.../libstdc++6-4.1-dev_4.1.2-0ubuntu4_i386.deb) ...
Selecting previously deselected package g++-4.1.
Unpacking g++-4.1 (from .../g++-4.1_4.1.2-0ubuntu4_i386.deb) ...
Selecting previously deselected package g++.
Unpacking g++ (from .../g++_4.1.2-1ubuntu1_i386.deb) ...
Selecting previously deselected package dpkg-dev.
Unpacking dpkg-dev (from .../dpkg-dev_1.13.24ubuntu6_all.deb) ...
Selecting previously deselected package build-essential.
Unpacking build-essential (from .../build-essential_11.3_i386.deb) ...
Setting up linux-libc-dev (2.6.20-15.27) ...
Setting up libc6-dev (2.5-0ubuntu14) ...
Setting up gcc (4.1.2-1ubuntu1) ...
Setting up dpkg-dev (1.13.24ubuntu6) ...
Setting up libstdc++6-4.1-dev (4.1.2-0ubuntu4) ...
Setting up g++-4.1 (4.1.2-0ubuntu4) ...
Setting up g++ (4.1.2-1ubuntu1) ...
Setting up build-essential (11.3) ...
root@ubuntu:/home/ubuntu# cd /media/ACER
root@ubuntu:/media/ACER# cd powerloom-3.2.0
root@ubuntu:/media/ACER/powerloom-3.2.0# cd cd native/cpp/powerloom
bash: cd: cd: No such file or directory
root@ubuntu:/media/ACER/powerloom-3.2.0# cd native/cpp/powerloom
root@ubuntu:/media/ACER/powerloom-3.2.0/native/cpp/powerloom# make
for system in logic logic/extensions  ; do \
          (cd ../${system} ; \
          make  CC=gcc CXX=g++ LINK-MODE=dynamic lib;) \
        done
make[1]: Entering directory `/media/ACER/powerloom-3.2.0/native/cpp/logic'
g++ -w -g -O2 -fno-common -DSTELLA_USE_GC -I../stella/cpp-lib/gc/include
 -c -I.. logic-macros.cc
../stella/primal.hh:84: error: explicit qualification in declaration of
â€˜double stella::fmod(double, double)â€™
../stella/primal.hh:89: error: explicit qualification in declaration of
â€˜int stella::random(int)â€™
../stella/primal.hh:91: error: explicit qualification in declaration of
â€˜double stella::sqrt(double)â€™
../stella/primal.hh:92: error: explicit qualification in declaration of
â€˜double stella::cos(double)â€™
../stella/primal.hh:93: error: explicit qualification in declaration of
â€˜double stella::sin(double)â€™
../stella/primal.hh:94: error: explicit qualification in declaration of
â€˜double stella::tan(double)â€™
../stella/primal.hh:95: error: explicit qualification in declaration of
â€˜double stella::acos(double)â€™
../stella/primal.hh:96: error: explicit qualification in declaration of
â€˜double stella::asin(double)â€™
../stella/primal.hh:97: error: explicit qualification in declaration of
â€˜double stella::atan(double)â€™
../stella/primal.hh:98: error: explicit qualification in declaration of
â€˜double stella::atan2(double, double)â€™
../stella/primal.hh:99: error: explicit qualification in declaration of
â€˜double stella::log(double)â€™
../stella/primal.hh:101: error: explicit qualification in declaration of
â€˜double stella::exp(double)â€™
../stella/primal.hh:103: error: explicit qualification in declaration of
â€˜int stella::min(int, int)â€™
../stella/primal.hh:104: error: explicit qualification in declaration of
â€˜int stella::max(int, int)â€™
../stella/primal.hh:198: error: explicit qualification in declaration of
â€˜void stella::sleep(double)â€™
../stella/collections.hh:165: error: explicit qualification in
declaration of â€˜stella::Vector* stella::vector(int, ...)â€™
make[1]: *** [logic-macros.o] Error 1
make[1]: Leaving directory `/media/ACER/powerloom-3.2.0/native/cpp/logic'
make[1]: Entering directory
`/media/ACER/powerloom-3.2.0/native/cpp/logic/extensions'
g++ -w -g -O2 -fno-common -DSTELLA_USE_GC
-I../../stella/cpp-lib/gc/include  -c -I../.. extensions.cc
../../stella/primal.hh:84: error: explicit qualification in declaration
of â€˜double stella::fmod(double, double)â€™
../../stella/primal.hh:89: error: explicit qualification in declaration
of â€˜int stella::random(int)â€™
../../stella/primal.hh:91: error: explicit qualification in declaration
of â€˜double stella::sqrt(double)â€™
../../stella/primal.hh:92: error: explicit qualification in declaration
of â€˜double stella::cos(double)â€™
../../stella/primal.hh:93: error: explicit qualification in declaration
of â€˜double stella::sin(double)â€™
../../stella/primal.hh:94: error: explicit qualification in declaration
of â€˜double stella::tan(double)â€™
../../stella/primal.hh:95: error: explicit qualification in declaration
of â€˜double stella::acos(double)â€™
../../stella/primal.hh:96: error: explicit qualification in declaration
of â€˜double stella::asin(double)â€™
../../stella/primal.hh:97: error: explicit qualification in declaration
of â€˜double stella::atan(double)â€™
../../stella/primal.hh:98: error: explicit qualification in declaration
of â€˜double stella::atan2(double, double)â€™
../../stella/primal.hh:99: error: explicit qualification in declaration
of â€˜double stella::log(double)â€™
../../stella/primal.hh:101: error: explicit qualification in declaration
of â€˜double stella::exp(double)â€™
../../stella/primal.hh:103: error: explicit qualification in declaration
of â€˜int stella::min(int, int)â€™
../../stella/primal.hh:104: error: explicit qualification in declaration
of â€˜int stella::max(int, int)â€™
../../stella/primal.hh:198: error: explicit qualification in declaration
of â€˜void stella::sleep(double)â€™
../../stella/collections.hh:165: error: explicit qualification in
declaration of â€˜stella::Vector* stella::vector(int, ...)â€™
make[1]: *** [extensions.o] Error 1
make[1]: Leaving directory
`/media/ACER/powerloom-3.2.0/native/cpp/logic/extensions'
make: *** [update-required-systems] Error 2
root@ubuntu:/media/ACER/powerloom-3.2.0/native/cpp/powerloom#

 â€˜double stella::fmod(double, double)â€™
Cosi' alla cieca verrebbe da pensare che primal.hh contenga qualcosa
come
namespace stella {
#include <math.h>
...
Se e' cosi' e' rotto al di la' del riparabile.
Ciao,
Nicola