Problem mit Linker im Makefile

Gast #1463838
Lesenswert?

Hallo Leute,

ich habe folgendes Problem:
Der Linker "mplink" aus einem Makefile aufgerufen funktioniert nicht, 
kopiere ich die gleiche Zeile (der Ausgabe) in die Kommandozeile, geht 
es!! Pfad ist in beiden Fällen gleich, oder sollte gleich sein.

Was mich stutzig macht ist das "unrecognized input: C:/msys/w", Mplink 
hält wohl das /w (Option) für einen Pfad.

Geht weder mit MinGW-make noch Msys-make

Ausgabe make: GEHT NICHT
-------------
**** Build of configuration Default for project PICUSBIO ****

mingw32-make all
mplink /l"C:\mcc18\lib" "C:\mcc18\lkr\18f4455.lkr" user.o cdc.o main.o 
usb9.o usbctrltrf.o usbdrv.o usbdsc.o usbmmap.o 
/m"E:\Meurer\Develop\PIC\PICUSBIO\output\PICUSBIO.map" /w 
/o"PICUSBIO.cof"
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Error - unrecognized input: C:/msys/w
Errors    : 1

mingw32-make: *** [picusbio.hex] Error 1

Makefile-Auszug:
---------------
mplink /l"C:\mcc18\lib" "C:\mcc18\lkr\18f4455.lkr" $^ 
/m"$(OUTDIR)\PICUSBIO.map" /w /o"PICUSBIO.cof"

Kommandozeile: GEHT
--------------
E:\Meurer\Develop\PIC\PICUSBIO>mplink /l"C:\mcc18\lib" 
"C:\mcc18\lkr\18f4455.lkr
" user.o cdc.o main.o usb9.o usbctrltrf.o usbdrv.o usbdsc.o usbmmap.o 
/m"E:\Meur
er\Develop\PIC\PICUSBIO\output\PICUSBIO.map" /w /o"PICUSBIO.cof"
MPLINK 4.11, Linker
Copyright (c) 2007 Microchip Technology Inc.
Errors    : 0

MP2HEX 4.11, COFF to HEX File Converter
Copyright (c) 2007 Microchip Technology Inc.
Errors    : 0


Grüße,

Chris
Gast #1463854
Lesenswert?

Zusatz:
Habe noch vergessen die Rahmenbedingungen zu erwähnen:
Es geht um einen PIC mit C18 auf einem Windows-PC. MSYS und MAKE (von 
MinGW) sind installiert. MPLAB ist installiert, hier geht der Build ohne 
Probleme, schreibe aber gerade ein Makefile um Eclipse als IDE zu 
verwenden.
Persönliche Seite #1464004
Lesenswert?

Aus dem make oder Eclipse heraus ist anscheinend die Kommandozeile beim 
Aufruf des mplink zu lang und wird abgeschnitten.

Ich vermute C:/msys/w ist eine Kombination von Defaultpath und 
Kommandozeilenparameter /w.

Um diese Hypothese zu prüfen: Statt mplink mal ein Batchfile oder ein 
selbstgeschriebenes Programm einsetzen und die übergebene Kommandozeile 
anzeigen lassen.
Gast #1464055
Lesenswert?

Hallo,
vielen Dank für den Tipp, Stefan. Es lag zwar nicht direkt an der Länge 
der Kommandozeile, ABER an den Anführungszeichen!!!
Hab' mir die Zeile mit @echo anzeigen lassen und siehe: alle 
Anführungszeichen waren verschwunden.

So geht's, und dann linkt er auch:
mplink /l\"C:\mcc18\lib\" \"C:\mcc18\lkr\18f4455.lkr\" $^ 
/m\"PICUSBIO.map\" /w /o\"PICUSBIO.cof\"

statt:
mplink /l"C:\mcc18\lib" "C:\mcc18\lkr\18f4455.lkr" $^ /m"PICUSBIO.map" 
/w /o"PICUSBIO.cof"

very spooky!!!

Vielen Dank, Du hast mich auf die richtige Fährte gebracht.

Grüße,

CHris.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren