Hur kompilera i OS X 4.3?

Tråden skapades och har fått 22 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Gävle
  • 2005-12-23 22:04

Hejsan,
Då vill jag kompilera mitt första program. Har fixat källkoden men om jag letar upp undermappen där Makefile-filen ligger och skriver make i terminalen får jag typ: command does not exist.

Vad gör jag för fel? Hur ska jag göra?

Har du Xcode installerat? GCC? Utvecklingsverktygen?

  • Medlem
  • Gävle
  • 2005-12-23 22:21

Har installerat gcc4.0 men fann även gcc3.3 bland alla install-filer. Måste den också installeras då terminalen fortfarande inte hittar gcc?

  • Medlem
  • Sollentuna
  • 2005-12-23 23:10

Har du rätt sökväg till gcc i $PATH?

Om make inte hittas har du nog inte installerat DevTools ordentligt. Det ska ligga i /usr/bin/make och gcc ska ligga i /usr/bin/gcc, så det ska inte vara något strul med PATH. Om du är osäker, kör om DevTools-installationen och ändra inte defaultinställningar.

  • Medlem
  • Simrishamn
  • 2005-12-31 00:21

Du kan ju testa:
$ cd /usr/bin && ls gcc
i terminalen. Om det inte kommer upp något så är det inte installerat ordentligt.

EDIT: Förresten... de gånger jag kompilerar från källa (inte helt sällan alltså) make:ar jag inte från undermappen, utan från mappen där allt ligger. Har inte sett något program som kräver att få bli make:at från någon undermapp faktiskt
Kan det vara felet?

Jag hade själv lite problem med att använda GCC tills jag installerade hela Developer Tools.

Jag har fortfarande problemet, den säger att den inte hittar gcc, fast jag har kört in XCode, och sen dess har jag t om startat om (vadå winskadad), men tänkte att det var lika bra att testa.
Vad var det där i $PATH ni snackade om? är det i bash.rc eller vart är det nu man hittar det där?
Cheers

Lite kod för att göra svaret enklare:

Configuring Apache Portable Runtime library ...

checking for APR... reconfig
configuring package in srclib/apr now
checking build system type... powerpc-apple-darwin8.3.0
checking host system type... powerpc-apple-darwin8.3.0
checking target system type... powerpc-apple-darwin8.3.0
Configuring APR library
Platform: powerpc-apple-darwin8.3.0
checking for working mkdir -p... yes
APR Version: 1.2.2
checking for chosen layout... apr
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.
configure failed for srclib/apr

Och ja, jag är root.

Och sen jag installerade XCode så kommer badbollen konstant, hela tiden, jämt.
Fan vd irriterande, OSX som var snorsstabilt, har blivit som Windows om inte värre.
detta messet har tagit mig ca. 6-7 minuter att skriva.

  • Medlem
  • Sollentuna
  • 2006-01-06 01:20
Ursprungligen av RockyMontana:

Jag har fortfarande problemet, den säger att den inte hittar gcc, fast jag har kört in XCode, och sen dess har jag t om startat om (vadå winskadad), men tänkte att det var lika bra att testa.
Vad var det där i $PATH ni snackade om? är det i bash.rc eller vart är det nu man hittar det där?
Cheers

$PATH måste ju peka på rätt bibliotek där gcc o dyl ligger. Annars går det ju inte att köra genom att bara skriva gcc vid promten.

Ursprungligen av RockyMontana:

Lite kod för att göra svaret enklare:

Configuring Apache Portable Runtime library ...

checking for APR... reconfig
configuring package in srclib/apr now
checking build system type... powerpc-apple-darwin8.3.0
checking host system type... powerpc-apple-darwin8.3.0
checking target system type... powerpc-apple-darwin8.3.0
Configuring APR library
Platform: powerpc-apple-darwin8.3.0
checking for working mkdir -p... yes
APR Version: 1.2.2
checking for chosen layout... apr
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.
configure failed for srclib/apr

Du står i ett skrivskyddat bibliotek. ./configure-scriptet måste kunna provskriva för att testa gcc. Därav felmeddelandet. Det står ju faktiskt på samma rad att C-kompilatorn inte kan tillverka/skriva en fil.

Ursprungligen av RockyMontana:

Och ja, jag är root.

Det behövs inte förrän du ska installera. Och då gör det det lämpligast genom att prefixa make install med sudo.

"C compiler cannot create executables" har inget med skrivrättigheter att göra, det är ett felmeddelande från configurescriptet att kompilatorn inte fungerar. Vad du kan göra för att få mer information är att öppna filen "config.log" i samma mapp och leta efter en rad ungefär "configure:1802: checking for C compiler default output file name", raderna efter den kommer förhoppningsvis innehålla felmeddelande från kompilatorn. Om du kan posta dem här kan jag kanske avgöra vad som är fel.

PATH ska du inte behöva bekymra dig om.

Ursprungligen av morris:

"Vad du kan göra för att få mer information är att öppna filen "config.log" i samma mapp och leta efter en rad ungefär "configure:1802: checking for C compiler default output file name", raderna efter den kommer förhoppningsvis innehålla felmeddelande från kompilatorn. Om du kan posta dem här kan jag kanske avgöra vad som är fel.

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

configure:1648: checking for chosen layout
configure:1650: result: Apache
configure:2446: checking for working mkdir -p
configure:2462: result: yes
configure:2479: checking build system type
configure:2497: result: powerpc-apple-darwin8.3.0
configure:2505: checking host system type
configure:2519: result: powerpc-apple-darwin8.3.0
configure:2527: checking target system type
configure:2541: result: powerpc-apple-darwin8.3.0
configure:2585: checking for APR
configure:2667: result: reconfig

Det var det enda jag hittade.
Undrar om det kan hjälpa något

Var det allt som fanns i config.log? Ingen info längre fram, mer specifikt från när den testar gcc?

Ett alternativ är att du skapar ett testprogram, t ex:

int main(void) { return 0; }

och sparar i en fil "test.c", kompilera sedan denna med kommandot "gcc test.c". Om kompilatorn funkar ska du få ett program som heter "a.out" som inte gör något, annars får du felmeddelanden.

$ gcc2 test.c
cpp: specs=/usr/libexec/gcc/darwin/ppc/2.95.2/specs: No such file or directory
$ cd /usr/libexec/gcc/darwin/ppc/2.95.2/specs
Sista raden tabbade jag fram, så nog finns den där alltid, kan det kanske vara $PATH iallafall?

Ser att du kör med kommandot gcc2, som då motsvarar den äldre versionen 2.95.2. Någon speciell anledning till detta? Rekommenderad är gcc 4.0 på Tiger om jag minns rätt. 2.95.2 är något man måste kryssa i själv när man installerar DevTools, så detta kanske inte gått rätt. Kolla också kommandot gcc_select, som används för att växla mellan gcc-versioner. Kör "gcc_select -l" för att lista vilka som finns på ditt system.

Ursprungligen av morris:

Ser att du kör med kommandot gcc2, som då motsvarar den äldre versionen 2.95.2. Någon speciell anledning till detta? Rekommenderad är gcc 4.0 på Tiger om jag minns rätt. 2.95.2 är något man måste kryssa i själv när man installerar DevTools, så detta kanske inte gått rätt. Kolla också kommandot gcc_select, som används för att växla mellan gcc-versioner. Kör "gcc_select -l" för att lista vilka som finns på ditt system.

gcc_select finns inte, det _enda_ som jag kan tabba fram är gcc2.
Jag tog den packen som fanns som pkg-fil i DevTools, därav den senare versionen, och när jag försöker "port install gcc42" så hämtar den ned, men kan inte kompilera, därför har jag inte den nyare verisonen.

Du installerade något i stil med "gcc2.95.pkg" då? Jag hade kört om DevTools-installationen och börjat med huvudfilen, den som heter "Developer Tools.mpkg" eller något liknande, sedan väljer du vilka underpaket du vill ha där. Jag har installerat gcc 4.0 och gcc 3.3, då ska du få gcc_select också. Om du vill bygga saker från terminalen behöver du "BSD SDK" också, men den ska vara förvald.

Ursprungligen av morris:

Du installerade något i stil med "gcc2.95.pkg" då? Jag hade kört om DevTools-installationen och börjat med huvudfilen, den som heter "Developer Tools.mpkg" eller något liknande, sedan väljer du vilka underpaket du vill ha där. Jag har installerat gcc 4.0 och gcc 3.3, då ska du få gcc_select också. Om du vill bygga saker från terminalen behöver du "BSD SDK" också, men den ska vara förvald.

$ sudo port install gcc42
--->  Fetching gmp
--->  Attempting to fetch gmp-4.1.4.tar.bz2 from ftp://ftp.gnu.org/gnu/gmp
--->  Verifying checksum(s) for gmp
--->  Extracting gmp
--->  Configuring gmp
Error: Target com.apple.configure returned: configure failure: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_devel_gmp/work/gmp-4.1.4" && ./configure --prefix=/opt/local --infodir=\${prefix}/share/info" returned error 1
Command output: checking build system type... powerpc-apple-darwin8.3.0
checking host system type... powerpc-apple-darwin8.3.0
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for mawk... no
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets ${MAKE}... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking compiler gcc -g -O2 -mpowerpc ... no
checking whether cc is gcc... yes
checking compiler cc -g -O2 -mpowerpc ... no
configure: error: could not find a working compiler

Error: The following dependencies failed to build: gmp mpfr
Error: /opt/local/bin/port: Status 1 encountered during processing.

Blir du nå smart?

Men jag fick inte välja när jag körde den, den körde in alltihop. Med installer dvs.

[EDIT]
Och nu såg jag Costumize-knappen.
Duuuuh... *slå sig själv i skallen*
[/EDIT]

  • Medlem
  • Sollentuna
  • 2006-01-07 21:15

Ja, du försöker att installera gcc-4.2 från port (Fink/osxgnu/?). Hur som helst så menar morris att du ska installera från OSX-skivan. Och välja vilka delar som du känner för. Och sedan uppdatera från developer.apple.com.

Men det ser ut som om du sitter och kör den från port, vilket i mina ögon antingen är Fink eller dess släktingar. Jag har provat, men inte blivit imponerad. Det finns andra som inte heller är imponerade och försöker nu att packa paket enligt Apples egen (XCode). Ett exempel som jag känner till är ethereal. Vad som har hänt sedan jag tog semester 22/12 vet jag inte, men dom är på god väg. Det är nog inte alls så svårt när allt kommer omkring...

Du kan inte bygga en gcc från källkod utan en fungerade kompilator, tyvärr. Du måste installera en fungerande binär från OSX-skivan. Jag hade inte installerat från någon annan källa heller eftersom man då troligen inte får den Applespecifika gcc-versioner som distribueras med OS:et.

Om du inte gjorde några val under installationen av DevTools och du faktiskt körde från huvudpaketet, och du ändå bara har binären gcc2 som dessutom inte funkar, så har installationen gått fel. Du måste se till att få den installationen så rätt att du kan köra kommandot "gcc" från terminalen utan att få några felmeddelanden.

Fast nu har jag ju fått in gcc-3.3 från DevTools-"skivan", och det funkar ändå inte.
Det jag får ovan är i försök att kompilera efter jag fått in gcc-3.3 från XCode.

[EDIT]
Nu har jag slängt in från OSX-skivan, och det funkar ÄNDÅ inte...
wtf...

# port install apache
--->  Configuring apache
Error: Target com.apple.configure returned: configure failure: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_www_apache/work/apache_1.3.34" && ./configure --prefix=/opt/local --datadir=/opt/local/var/www/data --cgidir=/opt/local/var/www/cgi-bin --iconsdir=/opt/local/var/www/icons --mandir=/opt/local/share/man --server-uid=www --server-gid=www  --enable-module=most --enable-shared=max --disable-rule=expat --with-layout=FreeBSD --logfiledir=/opt/local/var/log/httpd --runtimedir=/opt/local/run" returned error 1
Command output: Configuring for Apache, Version 1.3.34
 + using installation path layout: FreeBSD (config.layout)
Creating Makefile
Creating Configuration.apaci in src
 + enabling mod_so for DSO support
Creating Makefile in src
 + configured for Darwin platform
Error: could not find any of these C compilers
 anywhere in your PATH:  gcc cc acc c89
Configure terminated

Error: /opt/local/bin/port: Status 1 encountered during processing.

[EDIT igen="igen"]
Nu har jag pysslat lite till, och slängt in lite mer skit från skivan, saken är den att den inte hittar lctr1.o
här kommer koden

$ sudo port install apache
Password:
--->  Configuring apache
Error: Target com.apple.configure returned: configure failure: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_www_apache/work/apache_1.3.34" && ./configure --prefix=/opt/local --datadir=/opt/local/var/www/data --cgidir=/opt/local/var/www/cgi-bin --iconsdir=/opt/local/var/www/icons --mandir=/opt/local/share/man --server-uid=www --server-gid=www  --enable-module=most --enable-shared=max --disable-rule=expat --with-layout=FreeBSD --logfiledir=/opt/local/var/log/httpd --runtimedir=/opt/local/run" returned error 1
Command output: Configuring for Apache, Version 1.3.34
 + using installation path layout: FreeBSD (config.layout)
Creating Makefile
Creating Configuration.apaci in src
 + enabling mod_so for DSO support
Creating Makefile in src
 + configured for Darwin platform
 + setting C compiler to gcc
 + setting C pre-processor to NOT-AVAILABLE
 + using "tr [a-z] [A-Z]" to uppercase
 + checking for system header files
 + adding selected modules
    o rewrite_module uses ConfigStart/End
      disabling DBM support for mod_rewrite
      (perhaps you need to add -ldbm, -lndbm or -lgdbm to EXTRA_LIBS)
    o dbm_auth_module uses ConfigStart/End
 + checking sizeof various data types
 + doing sanity check on compiler and options
** A test compilation with your Makefile configuration
** failed.  The below error output from the compilation
** test will give you an idea what is failing. Note that
** Apache requires an ANSI C Compiler, such as gcc. 

======== Error Output for sanity check ========
cd ..; gcc  -DDARWIN -DNO_DBM_REWRITEMAP -DUSE_HSREGEX `./apaci`     -o helpers/dummy helpers/dummy.c   
ld: can't locate file for: -lcrt1.o
make: *** [dummy] Error 1
============= End of Error Report =============

 Aborting!

Error: /opt/local/bin/port: Status 1 encountered during processing.

[/EDIT]

Senast redigerat 2006-01-08 23:06

Hur Kompilera i OS X 4,3 [SOLVED]

Körde in ytterligare saker från skivan, DevSDK, DevToolsSDK, BSDSDK, och nu fungerar det
[SOLVED]

1
Bevaka tråden