ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 56 Beiträge ]  Gehe zu Seite 1, 2, 3, 4  Nächste
Autor Nachricht
BeitragVerfasst: 25 Apr 2007, 11:27 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Moin, moin!

So - da dachte ich nun, dass ich während der langweiligen Stunden im Krankenhaus endlich mal die neuen Ruby 1.9-Snapshots statt der alten aus dem letzten Jahr für Oniguruma einsetzen könnte... - ...stattdessen war ich nach einiger Zeit nahe dran mein altes Notebook zu verprügeln, welches nun wirklich unschuldig war.

Zum Problem, beziehungsweise den Problemen.

Ich erstell(t)e mir die Versionen unter Windows2000 unter der Benutzung der von cypher letztes Jahr beschriebenen Tools.
  • MinGW-3.1.0-1.exe
  • MSYS-1.0.11-2004.04.30-1.exe
  • msysDTK-1.0.1.exe
  • bison-2.0-MSYS.tar.gz
  • msys-autoconf-2.59.tar.bz2
  • msys-automake-1.8.2.tar.bz2
Details hat cypher hier beschrieben. Als Besonderheit gilt, dass man in den Ruby-Quellen das Unterverzeichnis ext\win32ole komplett löschen muss, weil es sonst Probleme gibt. Das funktioniert wunderbar bei mir bis einschliesslich des Snapshots vom 22.12.2006.

Nun wollte ich mal eine neuere Version nehmen... - Zur Verfügung habe ich Snapshots vom 22.01.2007, 30.01.2007, 09.03.2007 und 22.04.2007. Die nun beschriebenen Probleme tauchen bei all diesen Snapshosts auf, ich beschreibe es stellvertretend für den Snapshot vom 22.01.2007.

Unproblematisch ist es am Anfang.
  • autoconf
  • ./configure --prefix=/f/ruby070122 --program-suffix=-070122
Das wars dann aber auch, weil nun bei make die Überraschungen kamen. Zuerst lief make auf das Kommando...


ruby ./tool/insns2vm.rb  --srcdir=.
..., was natürlich deshalb Probleme gibt, weil ich mir Ruby ja erst zusammenbauen will und in diesem Umfeld Ruby nicht installiert hatte. Es reifte bei mir die Erkenntnis, dass neuerdings zum Bauen von Ruby 1.9 eine Ruby-Version installiert sein muss. Fraglich bleibt natürlich welche...

Ich habe mir dann einfach mal den OneClickInstaller-186-25 installiert und erfolgreich seine Verwendung in einer MSYS-Konsole getestet. Also ran an den nächsten Versuch. Es ging dann auch weiter, aber eben nicht so weit, wie ich mir das gewünscht hätte.

1
2
3
4
5
...
gcc -g -O2 -I. -I. -DRUBY_EXPORT -c dmydln.c
gcc -g -O2 -Wl,--stack,0x02000000 -L. main.o dmydln.o libmsvcrt-ruby-07012219-static.a -lshell32 -lws2_32 -o miniruby.exe
./mkconfig.rb:7:in `<main>': undefined method `dirname' for false:FalseClass (NoMethodError)
make: *** [.rbconfig.time] Error 1

Nun schaute ich erst einmal in mkconfig.rb nach...

1
2
3
4
5
6
7
8
9
10
#!./miniruby -s

# avoid warnings with -d.
$install_name ||= nil
$so_name ||= nil

srcdir = File.dirname(__FILE__)
$:.replace [srcdir+"/lib", "."]

#usw., usf.
...und war ein wenig irritiert. File ist offensichtlich nicht das, was man erwarten würde...

Ich hab dann einfach mal mit brachialer Gewalt (=ich wollte ja schliesslich nicht meinen Rechner schlagen, also musste ich mich anders abreagieren) mit make -n > makeruby.bat eine Datei erstellt und dann durchgängig miniruby.exe durch ruby ersetzt.

Das knallte dann aber auch, so dass ich erst einmal aufgehört habe...

Hat irgend jemand von Euch schon bessere Erfahrungen damit gesammelt? - Falls ja, wie und womit?

>>>>> Edit 07.12.2007 >>>>>

Nützliche Web-Adressen zu MinGW und MSYS...

_________________
WoNáDo.set_state!(:retired)


Zuletzt geändert von WoNáDo am 07 Dez 2007, 11:54, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Apr 2007, 18:24 
Offline
ri
Benutzeravatar

Registriert: 02 Jun 2006, 23:18
Beiträge: 702
Hallo Wolfgang,

so hat es bei mir zumindest teilweise geklappt:
  • MSYS-1.0.10.exe nach C:\msys installiert (ohne 1.0)
  • MinGW-5.1.3.exe
    • Download and install
    • Candidate
    • MinGW base tools, g++ compiler, MinGW Make
    • C:\msys\MinGW
  • ruby-1.8.6-i386-mswin32.zip nach C:\msys\home\%USERNAME%\ruby-1.8.6 entpackt (Verzeichnisse bin und lib reichen)
  • snapshot.tar.gz nach C:\msys\home\%USERNAME% heruntergeladen, unter MSYS mit tar xzvf snapshot.tar.gz entpackt
  • cd ruby
  • mkdir build
  • cd build
  • ../configure --with-baseruby=/home/$USERNAME/ruby-1.8.6/bin/ruby.exe
  • Optional: Kaffee machen
  • make
  • Optional: Kaffee trinken
  • $ ruby -v
    ruby 1.9.0 (2007-04-24 patchlevel 0) [i386-mingw32]
  • make test ergibt viele Fehler :(
  • make install läuft durch (und installiert alles nach C:\usr – hätte doch lieber ein --prefix bei configure angeben sollen ;))

Vielleicht hilft Dir das ja irgendwie weiter!

Grüße,
Matthias


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Apr 2007, 19:13 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Danke erst einmal für die schnelle Antwort :D
reima hat geschrieben:

Sicherheitshalber noch ein paar Fragen, weil ich mich mit den Umgebungen nicht wirklich auskenne.
  • Ich hatte bisher die (bis Ende 2006) funktionierende Reihenfolge bei der Systeminstallation:
    • MinGW-3.1.0-1.exe installieren
    • MSYS-1.0.11-2004.04.30-1.exe installieren
      Auf die Post-Install-Fragen wie folgt antworten:
      • "do you wish to continue with the post install?" -> y
      • "do you have MinGW installed?" -> y
      • Pfad zum MinGW eintippen
    • msysDTK-1.0.1.exe in den gleichen Ordner wie MSYS installieren.
    • bison-2.0-MSYS.tar.gz, msys-autoconf-2.59.tar.bz2 und msys-automake-1.8.2.tar.bz2 ins MSYS-Verzeichnis kopieren
    • MSYS-Prompt starten und folgendes eintippen:
      • cd /
      • tar -jxf msys-automake-1.8.2.tar.bz2
      • tar -jxf msys-autoconf-2.59.tar.bz2
      • tar -zxf bison-2.0-MSYS.tar.gz
    Hat es einen Grund, warum jetzt die Reihenfolge der Installation von MinGW und MSYS vertauscht sind? - Was ist mit msysDTK-1.0.1.exe und den komprimierten Tools, die noch eingefügt werden mussten?
  • Was bedeutet Candidate?

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Apr 2007, 19:57 
Offline
ri
Benutzeravatar

Registriert: 02 Jun 2006, 23:18
Beiträge: 702
WoNáDo hat geschrieben:
Hat es einen Grund, warum jetzt die Reihenfolge der Installation von MinGW und MSYS vertauscht sind?

Gute Frage – ich glaub aber, dass es letztendlich keinen Unterschied macht. Wenn man MinGW brav in das Unterverzeichnis mingw von MSYS installiert, kann man auf alle Tools von MinGW zugreifen. Will man MinGW in ein anderes Verzeichnis installieren, sollte man vermutlich MSYS erst danach einrichten.

WoNáDo hat geschrieben:
Was ist mit msysDTK-1.0.1.exe und den komprimierten Tools, die noch eingefügt werden mussten?

Anscheinend benötigt man diese Pakete für das Kompilieren von Ruby nicht. autoconf soll man laut der README in der snapshot.tar.gz nur ausführen, wenn es kein configure gibt oder configure älter als configure.in ist. Beides war bei mir nicht der Fall, also braucht man autoconf auch zunächst nicht. Zu den anderen Paketen kann ich nichts sagen, außer dass sich beim Kompilieren niemand beschwert hat, weil diese nicht installiert sind. If it ain't broke, don't fix it ;)

WoNáDo hat geschrieben:
Was bedeutet Candidate?

Im Gegensatz zu „Current“ werden mit „Candidate“ neuere Versionen einiger Tools installiert (binutils und GCC), welche praktisch schon für den Produktiveinsatz geeignet sind, aber vorher nochmals auf Herz und Nieren getestet werden sollen. Ich hatte aber noch keine Probleme damit, und da die „Current“-Pakete teils schon recht angestaubt sind…


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 26 Apr 2007, 21:53 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Soooo - jetzt werde ich mal anfangen das alles zu probieren. Morgen melde ich mich dann so :D oder so :cry:

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 28 Apr 2007, 20:31 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Leider schon ziemlich am Anfang :cry:

Nach dem Download der entsprechenden Teile habe ich begonnen. Leider gab es bei der MinGW-Installation mit Candidate ein Problem (siehe Bild).

Eine nähere Betrachtung zeigte, dass die Grösse der heruntergeladenen Datei mingw-runtime-3.12.tar.gz 0 (=Null) Byte beträgt.

Ich habe dann mal im Internet nach dieser Datei gesucht - und - sie nirgends gefunden.

Was nun?

btw - Die Installation lässt nur die Alternativen herunterladen und herunterladen und installieren zu. Was macht man denn, wenn man es schon heruntergeladen hat und nur noch installieren will?


Dateianhänge:
Dateikommentar: Fehlerausgabe beim MinGW-Install
MinGW-Install-Fehler.png
MinGW-Install-Fehler.png [ 16.58 KiB | 5115-mal betrachtet ]

_________________
WoNáDo.set_state!(:retired)
Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 28 Apr 2007, 23:17 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Jetzt habe ich es mit der current-Version probiert. Leider läuft das dann weit später auf einen configure-Fehler. Da ich eigentlich etwas blind tapsend bei dieser Sache vorgehe, kann ich mit der Fehlermeldung nicht viel anfangen.

So bin ich vorgegangen:
  • MSYS-1.0.10.exe nach F:\msys installiert
  • MinGW-5.1.3.exe installieren (nach F:\msys\MinGW) (Current)
  • msysDTK-1.0.1.exe nach F:\msys installiert.
  • ruby-1.8.6-i386-mswin32.zip nach C:\msys\home\wolfgang\ruby-1.8.6 entpackt
  • aktuellen Ruby Snapshot snapshot.tar.gz nach C:\msys\home\wolfgang heruntergeladen
  • unter MSYS
    • mit tar xzvf snapshot.tar.gz entpackt
    • cd ruby
    • mkdir build
    • cd build
    • ../configure --with-baseruby=/home/wolfgang/ruby-1.8.6/bin/ruby.exe --prefix=/ruby19 --program-suffix=19

Das gab dann eine Fehlermeldung.
config.log hat geschrieben:
$ ../configure --with-baseruby=/home/wolfgang/ruby-1.8.6/bin/ruby.exe --prefix=
/ruby19 --program-suffix=19
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking target system type... i686-pc-mingw32
checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.

wolfgang@TESTSPATZ ~/ruby/build
$ ls
config.log

wolfgang@TESTSPATZ ~/ruby/build
$ cat config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.59. Invocation command line was

$ ../configure --with-baseruby=/home/wolfgang/ruby-1.8.6/bin/ruby.exe --prefix=/ruby19 --program-suffix=19

## --------- ##
## Platform. ##
## --------- ##

hostname = testspatz
uname -m = i686
uname -r = 1.0.10(0.46/3/2)
uname -s = MINGW32_NT-5.0
uname -v = 2004-03-15 07:17

/usr/bin/uname -p = unknown
/bin/uname -X = unknown

/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown

PATH: .
PATH: /usr/local/bin
PATH: /mingw/bin
PATH: /bin
PATH: /f/Programme/PTP2002
PATH: /f/WINNT/system32
PATH: /f/WINNT
PATH: /f/WINNT/System32/Wbem


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1414: checking build system type
configure:1432: result: i686-pc-mingw32
configure:1440: checking host system type
configure:1454: result: i686-pc-mingw32
configure:1462: checking target system type
configure:1476: result: i686-pc-mingw32
configure:1704: checking for gcc
configure:1720: found /bin/gcc
configure:1730: result: gcc
configure:1974: checking for C compiler version
configure:1977: gcc --version </dev/null >&5
gcc.exe: no input files
configure:1980: $? = 1
configure:1982: gcc -v </dev/null >&5
gcc.exe: no input files
configure:1985: $? = 1
configure:1987: gcc -V </dev/null >&5
gcc.exe: no input files
configure:1990: $? = 1
configure:2013: checking for C compiler default output file name
configure:2016: gcc conftest.c >&5
gcc.exe: no input files
configure:2019: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define USE_BUILTIN_FRAME_ADDRESS 1
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2058: error: C compiler cannot create executables
See `config.log' for more details.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=i686-pc-mingw32
ac_cv_build_alias=i686-pc-mingw32
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=i686-pc-mingw32
ac_cv_host_alias=i686-pc-mingw32
ac_cv_prog_ac_ct_CC=gcc
ac_cv_target=i686-pc-mingw32
ac_cv_target_alias=i686-pc-mingw32

## ----------------- ##
## Output variables. ##
## ----------------- ##

ALLOCA=''
AR=''
ARCHFILE=''
ARCH_FLAG=''
AS=''
ASFLAGS=''
BASERUBY=''
CC='gcc'
CCDLFLAGS=''
CFLAGS=''
COMMON_HEADERS=''
COMMON_LIBS=''
COMMON_MACROS=''
CP=''
CPP=''
CPPFLAGS=''
CPPOUTFILE=''
CXX=''
CXXFLAGS=''
DEFS=''
DLDFLAGS=''
DLDLIBS=''
DLEXT2=''
DLEXT=''
DLLWRAP=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
ENABLE_SHARED=''
EXEEXT=''
EXPORT_PREFIX=''
EXTOUT=''
EXTSTATIC=''
GNU_LD=''
INSTALL_DATA=''
INSTALL_PROGRAM=''
INSTALL_SCRIPT=''
LDFLAGS=''
LDSHARED=''
LDSHAREDXX=''
LIBEXT=''
LIBOBJS=''
LIBPATHENV=''
LIBPATHFLAG=''
LIBRUBY=''
LIBRUBYARG=''
LIBRUBYARG_SHARED=''
LIBRUBYARG_STATIC=''
LIBRUBY_A=''
LIBRUBY_ALIASES=''
LIBRUBY_DLDFLAGS=''
LIBRUBY_LDSHARED=''
LIBRUBY_SO=''
LIBS=''
LINK_SO=''
LN_S=''
LTLIBOBJS=''
MAINLIBS=''
MAJOR='1'
MAKEDIRS=''
MAKEFILES=''
MANTYPE=''
MINIOBJS=''
MINIRUBY=''
MINOR='9'
NM=''
NROFF=''
OBJDUMP=''
OBJEXT=''
OUTFLAG=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PREP=''
RANLIB=''
RDOCTARGET=''
RM=''
RPATHFLAG=''
RUBYW_INSTALL_NAME=''
RUBY_INSTALL_NAME=''
RUBY_SO_NAME=''
RUNRUBY=''
SET_MAKE=''
SHELL='/bin/sh'
SOLIBS=''
STATIC=''
STRIP=''
TEENY='0'
THREAD_MODEL=''
TRY_LINK=''
WINDRES=''
XCFLAGS=''
XLDFLAGS=''
ac_ct_AR=''
ac_ct_AS=''
ac_ct_CC='gcc'
ac_ct_CXX=''
ac_ct_DLLWRAP=''
ac_ct_NM=''
ac_ct_OBJDUMP=''
ac_ct_RANLIB=''
ac_ct_WINDRES=''
arch=''
bindir='${exec_prefix}/bin'
build='i686-pc-mingw32'
build_alias=''
build_cpu='i686'
build_os='mingw32'
build_vendor='pc'
configure_args=''
datadir='${prefix}/share'
exec_prefix='NONE'
host='i686-pc-mingw32'
host_alias=''
host_cpu='i686'
host_os='mingw32'
host_vendor='pc'
includedir='${prefix}/include'
infodir='${prefix}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localstatedir='${prefix}/var'
mandir='${prefix}/man'
oldincludedir='/usr/include'
prefix='/ruby19'
program_transform_name='s,$$,19,;s,^,,'
rubyw_install_name=''
sbindir='${exec_prefix}/sbin'
setup=''
sharedstatedir='${prefix}/com'
sitearch=''
sitedir=''
sysconfdir='${prefix}/etc'
target='i686-pc-mingw32'
target_alias=''
target_cpu='i686'
target_os='mingw32'
target_vendor='pc'

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME ""
#define PACKAGE_STRING ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define USE_BUILTIN_FRAME_ADDRESS 1

configure: exit 77

:?: :?: :?:

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29 Apr 2007, 13:50 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
So - jetzt habe ich noch einmal die alten Tools genommen und die ursprügliche Vorgehensweise für das Environment minimal modifiziert (roter Text).
  • MinGW-3.1.0-1.exe installieren (nach F:\MinGW)
  • MSYS-1.0.11-2004.04.30-1.exe installieren (nach F:\msys). Auf die Post-Install-Fragen wie folgt antworten:
    • "do you wish to continue with the post install?" -> y
    • "do you have MinGW installed?" -> y
    • Pfad zum MinGW eintippen (F:/MinGW)
  • msysDTK-1.0.1.exe nach F:\msys installieren
  • bison-2.0-MSYS.tar.gz, msys-autoconf-2.59.tar.bz2 und msys-automake-1.8.2.tar.bz2
    nach F:\msys kopieren
  • MSYS-Prompt starten und folgendes eintippen:
    • cd /
    • tar -jxf msys-automake-1.8.2.tar.bz2
    • tar -jxf msys-autoconf-2.59.tar.bz2
    • tar -zxf bison-2.0-MSYS.tar.gz
  • ruby-1.8.6-i386-mswin32.zip nach F:\msys\home\wolfgang\ruby-1.8.6 entpackt
Das ging ohne Fehlermeldungen vor sich.

Ruby habe ich nun versucht folgendermassen zu erstellen (wesentliche Änderungen gegenüber der alten Vorgehensweise sind rot eingefärbt).
  • aktuellen Ruby Snapshot snapshot.tar.gz nach F:\msys\home\wolfgang heruntergeladen
  • unter MSYS
    • mit tar xzvf snapshot.tar.gz entpackt
    • cd ruby
    • Wenn es kein configure gibt oder configure älter als configure.in ist:
      • autoconf
    • mkdir build
    • cd build
    • ../configure --with-baseruby=/home/wolfgang/ruby-1.8.6/bin/ruby.exe --prefix=/ruby19 --program-suffix=19
    • make

Das lief dann nach einiger Zeit auf den schon einmal beobachteten Fehler:

1
2
3
4
5
6
7
...
gcc -g -O2 -I. -I.. -DRUBY_EXPORT -c ../main.c
gcc -g -O2 -I. -I.. -DRUBY_EXPORT -c ../dmydln.c
gcc -g -O2 -L. -Wl,--stack,0x00200000 main.o dmydln.o libmsvcrt-ruby1919-static.a -lshell32 -lws2_32 -o miniruby.exe
../mkconfig.rb:7:in `method_missing': undefined method `dirname' for false:FalseClass (NoMethodError)
from ../mkconfig.rb:7:in `<main>'
make: *** [.rbconfig.time] Error 1

Die Datei mkconfig.rb sieht nun am Anfang folgendermassen aus:

1
2
3
4
5
6
7
8
#!./miniruby -s

# avoid warnings with -d.
$install_name ||= nil
$so_name ||= nil

srcdir = File.dirname(__FILE__)
$:.replace [srcdir+"/lib", "."]

Also gehört die Konstante File zur FalseClass, hat also den Wert false.

Kann das jemand erklären?

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 30 Apr 2007, 12:55 
Offline
Interpreter
Benutzeravatar

Registriert: 02 Jan 2005, 20:15
Beiträge: 1360
Ich kann dir das alles leider nicht erklären, ich bin eine Windows Ente ;)
Aber zu "configure:2058: error: C compiler cannot create executables" dies habe ich manchmal, leider scheint dies ein eher allgemeiner Fehler zu sein.
- Einmal hatte ich es, weil gcc nicht "libiconv.so" finden konnte.
- Ein anderes Mal, weil bei /lib/cpp ein falscher Symlink angegeben war
- Ich hatte ihn auch einmal weil g++ nicht da war
- Und oft weil mein Gcc keine C++ Programme kompilieren konnte, zb weil
kein libc.so.5 oder so da war (oder nur libc.so.6, kann mich nicht mehr genau erinnern)

Mein Fazit ist hier leider, das für mich das configure script ziemlich archaisch und wenig benutzerfreundlich ist. Ich finde zb das ein User NIE nachschauen _SOLLTE_ in diesem ganzen config.log Salat mit seinen zahlreichen Zeilen unnützer Information (für einen Anwender).

Wer immer sich dies ausgedacht hatte, muss ein Geek gewesen sein. Viel
Glück noch, cypher weiss sicher weiter ;-)

_________________
Retired. Macht es gut!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 30 Apr 2007, 18:10 
Offline
Interpreter
Benutzeravatar

Registriert: 05 Jun 2005, 01:54
Beiträge: 3225
shevegen hat geschrieben:
Mein Fazit ist hier leider, das für mich das configure script ziemlich archaisch und wenig benutzerfreundlich ist.
Ja, das kommt noch aus der Zeit vor Linux. Und die Dinger sind deshalb so haesslich weil es (frueher) keinen sicheren Weg gab ein gewisses UNIX zu identifizieren, ausserdem musste man noch auf verschiedene C-Compiler in verschiedenen Versionen acht nehmen, und so weiter...

Leider hat sich ein alternatives Setup-Programm in der *nix-Welt nicht wirklich durchgesetzt (zumindest fuer C/C++-Programme).
shevegen hat geschrieben:
cypher weiss sicher weiter ;-)
Wenn ich mal wieder mehr Zeit hab, schau ich mir das mal an, aber ich fuerchte im Moment wird das eher knapp :/

_________________


1
2
3
alias L lambda
p L{|y|L{|f|y[L{|x|f[f][x]}]}[L{|f|y[L{|x|f[f][x]}]}]}[L{|z|L{|l|l.empty?? 0:1+z[l.drop(1)]}}][%w<a b c d e f g h i j>]
#=>10


Nuclear Powered Soup | Nuclear Powered Blog


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 30 Apr 2007, 20:22 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Ich habe auch unter comp.lang.ruby nachgefragt, allerdings bis jetzt noch keinen Kommentar dazu erhalten.

Offensichtlich sind es nicht allzu viele Leute, die Ruby 1.9 auf Windows mit MSYS/MinGW erstellen oder das wollen...

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 01 Mai 2007, 01:48 
Offline
ri
Benutzeravatar

Registriert: 02 Jun 2006, 23:18
Beiträge: 702
Hallo,

ich hab deine letzte Anleitung jetzt mal als Grundlage verwendet und alle unnötigen Sachen rausgelassen. Bei mir läuft make so einwandfrei durch.

  • MinGW-3.1.0-1.exe installieren (nach F:\MinGW)
  • MSYS-1.0.11-2004.04.30-1.exe installieren (nach F:\msys). Auf die Post-Install-Fragen wie folgt antworten:
    • "do you wish to continue with the post install?" -> y
    • "do you have MinGW installed?" -> y
    • Pfad zum MinGW eintippen (F:/MinGW)
  • ruby-1.8.6-i386-mswin32.zip nach F:\msys\home\wolfgang\ruby-1.8.6 entpackt
  • aktuellen Ruby Snapshot stable-snapshot.tar.gz nach F:\msys\home\wolfgang heruntergeladen
  • unter MSYS
    • mit tar xzvf stable-snapshot.tar.gz entpackt
    • cd ruby
    • mkdir build
    • cd build
    • ../configure --with-baseruby=/home/wolfgang/ruby-1.8.6/bin/ruby.exe --prefix=/ruby19 --program-suffix=19
    • make


Grüße,
Matthias

<edit>Stop, ich hab gelogen. Ich hatte es mit stable-snapshot.tar.gz probiert, nicht mit snapshot.tar.gz. Bei letzterem kriege ich dieselbe Fehlermeldung wie du. Hab das oben mal ausgebessert.</edit>


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 01 Mai 2007, 12:47 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Dann scheint da ja irgendwas mit dem miniruby nicht zu stimmen. Werd mal etwas rumprobieren, aber das auch noch unter comp.lang.ruby schreiben.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 01 Mai 2007, 14:19 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
WoNáDo hat geschrieben:
Dann scheint da ja irgendwas mit dem miniruby nicht zu stimmen.

Muss mich leider selbst zitieren, weil das hier einen eigenen Eintrag wert ist.

Ich habe dann einfach mal weiter probiert. Zuerst habe ich eine Datei mit make -n erstellt, in dieser dann "./miniruby.exe" durch ruby ersetzt, nachdem ich die Ruby-Version noch im Pfad untergebracht habe. Das führte zu nix - es gab Fehlermeldungen bezüglich einer nicht existierenden Methode - war ja auch nur ein schräger Versuch, weil das ja eine Ruby 1.8 Installation ist.

Danach wollte ich mal miniruby selber aufs Kreuz legen...

1
2
3
4
5
F:\msys\home\wolfgang\ruby\build>miniruby -v
ruby 1.9.0 (2007-04-27 patchlevel 0) [i386-mingw32]

F:\msys\home\wolfgang\ruby\build>miniruby -e "puts File.dirname(__FILE__)"
.
..., was jedoch nicht ging, da alles funktionierte.

>>>>> EDIT >>>>>

Ich habe es jetzt auch noch einmal unter der MSYS-Shell probiert und es ging auch.

Weiterhin habe ich mir das Kommando, welches den Fehler verursacht, einmal extrahiert:

1
2
3
./miniruby.exe  ../mkconfig.rb -timestamp=.rbconfig.time \
-install_name=ruby19 \
-so_name=msvcrt-ruby1919 rbconfig.rb

Der Anfang der Datei mkconfig.rb ist wie schon früher beschrieben.

>>>>> EDIT2 >>>>>

So, nun habe ich noch einen Versuch gestartet etwas Näheres herauszubekommen.

In der Datei mkconfig.rb fügte ich ein paar Ausgaben vor der entsprechenden Zeile ein.

1
2
3
4
5
6
7
8
9
#!./miniruby -s

# avoid warnings with -d.
$install_name ||= nil
$so_name ||= nil
p File.to_s
p File.class
p File.ancestors
srcdir = File.dirname(__FILE__)

Anschliessend lies ich es noch einmal make-errpart...

1
2
3
./miniruby.exe  ../mkconfig.rb -timestamp=.rbconfig.time \
-install_name=ruby19 \
-so_name=msvcrt-ruby1919 rbconfig.rb
... laufen, wobei der Fehler diesmal anders aussah, die Ausgabe jedoch ein interessantes Detail zeigte:

1
2
3
4
5
6
7
8
9
$ ./make-errpart
"false"
Class
[File, IO, File::Constants, Enumerable, Object, Kernel, BasicObject]
F:/msys/home/wolfgang/ruby/lib/fileutils.rb:1075:in `include': wrong argument type false (expected Module) (TypeError)
from F:/msys/home/wolfgang/ruby/lib/fileutils.rb:1075:in `<module:FileUtils>'
from F:/msys/home/wolfgang/ruby/lib/fileutils.rb:85:in `<top (required)>'
from ../mkconfig.rb:12:in `require'
from ../mkconfig.rb:12:in `<main>'

Wenn man diesen Teil mit der OCI-186-25-Installation laufen lässt, erhält man eine andere Ausgabe.

1
2
3
"File"
Class
[File, IO, File::Constants, Enumerable, Object, Kernel]

Das mit dem BasicObject ist klar, ansonsten steht halt der Wert false bei miniruby statt File bei Ruby 1.8.6.

>>>>> EDIT3 >>>>>

Nun ist wohl der Augenblick gekommen den Rechner auszumachen, irgendwohin an einen Tresen zu gehen und kopfschüttelnd irgend etwas zu trinken...

Im nachfolgenden Listing habe ich der besseren Kennzeichnung halber ##### <= my input ##### hinter meine Eingaben gesetzt, ansonsten bedarf es wohl keiner Worte.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ ./make-errpart ##### <= my input #####
"false"
Class
[File, IO, File::Constants, Enumerable, Object, Kernel, BasicObject]
F:/msys/home/wolfgang/ruby/lib/fileutils.rb:1075:in `include': wrong argument type false (expected Module) (TypeError)
from F:/msys/home/wolfgang/ruby/lib/fileutils.rb:1075:in `<module:FileUtils>'
from F:/msys/home/wolfgang/ruby/lib/fileutils.rb:85:in `<top (required)>'
from ../mkconfig.rb:12:in `require'
from ../mkconfig.rb:12:in `<main>'

wolfgang@TESTSPATZ ~/ruby/build
$ cat filetest.rb ##### <= my input #####
#!./miniruby -s
p File.to_s
p File.class
p File.ancestors

wolfgang@TESTSPATZ ~/ruby/build
$ ./miniruby filetest.rb ##### <= my input #####
"File"
Class
[File, IO, File::Constants, Enumerable, Object, Kernel, BasicObject]

wolfgang@TESTSPATZ ~/ruby/build
$ head ../mkconfig.rb ##### <= my input #####
#!./miniruby -s

# avoid warnings with -d.
$install_name ||= nil
$so_name ||= nil
p File.to_s
p File.class
p File.ancestors
srcdir = File.dirname(__FILE__)
$:.replace [srcdir+"/lib", "."]

Sollte irgendjemand auf diesem Planeten (Gäste aus anderen Welten mit einer Antwort wären mir auch recht) eine Erklärung haben, bitte ich aus humanitären Gründen, diese hier zu veröffentlichen...

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 04 Mai 2007, 22:31 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Ich habe es eben noch einmal probiert - jetzt geht es mit dem neuen Snapshot.

1
2
F:\Ruby19Build>ruby19 -v
ruby 1.9.0 (2007-05-03 patchlevel 0) [i386-mingw32]

Folgendes habe ich gemacht:
  • MinGW-5.0.2.exe installieren (nach F:\MinGW)
  • MSYS-1.0.10.exe installieren (nach F:\msys).
    Auf die Post-Install-Fragen wie folgt antworten:
    • "do you wish to continue with the post install?" -> y
    • "do you have MinGW installed?" -> y
    • Pfad zum MinGW eintippen (F:/MinGW)
  • msysDTK-1.0.1.exe nach F:\msys installieren
  • bison-2.0-MSYS.tar.gz, msys-autoconf-2.59.tar.bz2 und msys-automake-1.8.2.tar.bz2
    nach F:\msys kopieren
  • MSYS-Prompt starten und folgendes eintippen:
    • cd /
    • tar -jxf msys-automake-1.8.2.tar.bz2
    • tar -jxf msys-autoconf-2.59.tar.bz2
    • tar -zxf bison-2.0-MSYS.tar.gz
  • ruby-1.8.6-i386-mswin32.zip nach F:\msys\home\wolfgang\ruby-1.8.6 entpackt
  • aktuellen Ruby Snapshot snapshot.tar.gz nach F:\msys\home\wolfgang heruntergeladen
  • unter MSYS:
    • mit tar xzvf snapshot.tar.gz entpackt
  • das Verzeichnis F:\msys\home\wolfgang\ruby\ext\win32ole gelöscht. Damit gab es früher mal Probleme.
  • unter MSYS:
    • cd ruby
    • autoconf (muss nur sein wenn Wenn es kein configure gibt oder configure älter als configure.in ist)
    • mkdir build
    • cd build
    • ../configure --with-baseruby=/home/wolfgang/ruby-1.8.6/bin/ruby.exe --prefix=/ruby19 --program-suffix=19
    • make
    • make test (gibt diverse Fehler)
    • make install-nodoc
Danach steht Ruby19 in F:\ruby19 zur Verfügung. Jetzt muss man den Path noch um F:\ruby19\bin erweitern und die Datei .inputrc mit dem Inhalt...

1
2
3
4
5
6
7
8
9
"\M-[": "[" 
"\M-]": "]"
"\M-{": "{"
"\M-}": "}"
"\M-\\": "\\"
"\M-|": "|"
"\M-@": "@"
"\M-~": "~"
"\M-���": "���"
...am einfachsten in F:\ruby19 unterbringen. Dann verbleibt noch die Arbeit, eine neue Environment-Variable einzurichten. Sie muss INPUTRC heissen und als Wert F:\ruby19\.inputrc haben. Dann geht sogar irb19 so, wie man sich das wünscht.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 56 Beiträge ]  Gehe zu Seite 1, 2, 3, 4  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: