make von Cygwin im bestimmten Ordner aufrufen.
make von Cygwin im bestimmten Ordner aufrufen.
Hallo ,guten Tag.
Im Ordner von Cygwin muss ich make mit return ausführen um etwas zu starten.
Das ist der Ordner:
/home/name/test/
Wie geht das bitte mit purebasic.
Gruss
// Edit: Von "Allgemein" zu "Anfänger" verschoben (Kiffi)
Im Ordner von Cygwin muss ich make mit return ausführen um etwas zu starten.
Das ist der Ordner:
/home/name/test/
Wie geht das bitte mit purebasic.
Gruss
// Edit: Von "Allgemein" zu "Anfänger" verschoben (Kiffi)
Zuletzt geändert von funkheld am 01.02.2021 21:52, insgesamt 1-mal geändert.
Re: make von Cygwin im bestimmten Ordner aufrufen.
Stelle die Frage bitte noch etwas genauer.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: make von Cygwin im bestimmten Ordner aufrufen.
Wenn ich mich in diesem Ordner befinde : /home/name/test/
gebe ich ein make und drücke return, dann werden die verschiedenen Programme von Cygwin abgearbeitet.
make sehe ich ja nicht im Ordner , es verrichtet aber seine Arbeit und es wird das Programm compiliert und funktioniert wie ich es haben möchte.
Cygwin läuft unter Win10.
Gruss
gebe ich ein make und drücke return, dann werden die verschiedenen Programme von Cygwin abgearbeitet.
make sehe ich ja nicht im Ordner , es verrichtet aber seine Arbeit und es wird das Programm compiliert und funktioniert wie ich es haben möchte.
Cygwin läuft unter Win10.
Gruss
Code: Alles auswählen
pebi@LAPTOP-8VHAEO00 ~/test/
$ make >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> und drücke Return
ab hier arbeitet Cygwin :
preobjs: 'obj/dsk/.folder obj/.folder'
[test]
[test] === PREBUILD PROCCESSING DONE!
[test] ============================================================
[test]
/home/pebi/cpctelera-1.5/cpctelera/tools/sdcc-3.6.8-r9946/bin/sdcc -I/home/pebi/cpctelera-1.5/cpctelera/src -Isrc -mz80 -c src/cpct_floppy.c -o obj/cpct_floppy.rel
src/cpct_floppy.c:125: warning 85: in function cpct_loadBinaryFile unreferenced function argument : 'fileName'
src/cpct_floppy.c:125: warning 85: in function cpct_loadBinaryFile unreferenced function argument : 'loadAddr'
/home/pebi/cpctelera-1.5/cpctelera/tools/sdcc-3.6.8-r9946/bin/sdcc -I/home/pebi/cpctelera-1.5/cpctelera/src -Isrc -mz80 -c src/main.c -o obj/main.rel
src/main.c:19: warning 154: converting integral to pointer without a cast
from type 'const-int literal'
to type 'void generic* fixed'
src/main.c:26: warning 59: function 'setze_back' must return value
src/main.c:36: warning 154: converting integral to pointer without a cast
from type 'const-int literal'
to type 'void generic* fixed'
src/main.c:119: warning 154: converting integral to pointer without a cast
from type 'const-int literal'
to type 'void generic* fixed'
src/main.c:126: warning 154: converting integral to pointer without a cast
from type 'const-int literal'
to type 'void generic* fixed'
src/main.c:133: warning 154: converting integral to pointer without a cast
from type 'const-int literal'
to type 'void generic* fixed'
src/main.c:138: warning 126: unreachable code
/home/pebi/cpctelera-1.5/cpctelera/tools/sdcc-3.6.8-r9946/bin/sdcc -I/home/pebi/cpctelera-1.5/cpctelera/src -Isrc -mz80 -c src/sprite816.c -o obj/sprite816.rel
[test] Linking binary file
/home/pebi/cpctelera-1.5/cpctelera/tools/sdcc-3.6.8-r9946/bin/sdcc -mz80 --no-std-crt0 -Wl-u --code-loc 0x4000 --data-loc 0 -l/home/pebi/cpctelera-1.5/cpctelera/cpctelera.lib obj/cpct_floppy.rel obj/main.rel obj/sprite816.rel -o "obj/test.ihx"
[test] Creating Amsdos binary file obj/test.bin
/home/pebi/cpctelera-1.5/cpctelera/tools/hex2bin-2.0/bin/hex2bin -p 00 "obj/test.ihx" | tee obj/test.bin.log
hex2bin v2.0, Copyright (C) 2015 Jacques Pelletier & contributors
Binary file start = 00004000
Records start = 00004000
Highest address = 000046F5
Pad Byte = 0
[test] Creating Cassette file 'test.cdt'
'test.cdt' < 'test.bin' {Format:'firmware' Load:'0x4000' Run:'0x40F9' Name:'Game'}
[test] Successfully created 'test.cdt'
[test] Creating Disk File 'test.dsk'
DSK : test.dsk
------------------------------------
[test.dsk] Added BIN file 'obj/test.bin'
[test] Successfully created 'test.dsk'
[test.dsk] Added BIN file 'test.scr'
[test.dsk] Added BIN file 'test1.scr'
[test.dsk] Added BIN file 'test2.scr'
[test] All files added to test.dsk. Disc ready.
[test] Creating Snapshot File 'test.sna'
[test] Successfully created 'test.sna'
pebi@LAPTOP-8VHAEO00 ~/test/
$
Re: make von Cygwin im bestimmten Ordner aufrufen.
@funkheld
Hallo,
ich bin tappe immer noch im Dunkeln.
Was möchtest du erreichen?
Möchtest du ein ähnliches Programm für Kompilieranweisungen mit PureBasic erstellen?
(Mit eigenen Makefiles? /Oder soll es die Standard-Makefiles auslesen und verarbeiten können?)
Oder ist das Ziel ein beliebiges PureBasic-Programm in einem beliebigen Ordner auszuführen?
Also so etwas wie das Setzen von systemweiten Pfadvariablen. (setx.exe (mit Adminrechte))
Oder was ganz anderes ?
Hallo,
ich bin tappe immer noch im Dunkeln.
Was möchtest du erreichen?
Möchtest du ein ähnliches Programm für Kompilieranweisungen mit PureBasic erstellen?
(Mit eigenen Makefiles? /Oder soll es die Standard-Makefiles auslesen und verarbeiten können?)
Oder ist das Ziel ein beliebiges PureBasic-Programm in einem beliebigen Ordner auszuführen?
Also so etwas wie das Setzen von systemweiten Pfadvariablen. (setx.exe (mit Adminrechte))
Oder was ganz anderes ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: make von Cygwin im bestimmten Ordner aufrufen.
--------------------------
soll es die Standard-Makefiles auslesen
--------------------------
Ja.
Wenn ich" make" eingebe mit Return geht es mit dem Makefiles los.
Dieses make soll irgendwie mit Purebasic ausgelöst werden.
Gruss
soll es die Standard-Makefiles auslesen
--------------------------
Ja.
Wenn ich" make" eingebe mit Return geht es mit dem Makefiles los.
Dieses make soll irgendwie mit Purebasic ausgelöst werden.
Gruss
Re: make von Cygwin im bestimmten Ordner aufrufen.
Aha!
Bei "make" handelt es sich um eine EXE-Datei im \bin-Verzeichnis deiner Cygwin-Installation.
Beispiel: cygwin64\bin
Um "make" zu starten muss du es mit RunProgram() im richtigen Verzeichnis öffnen.
Kannst du "make" über die CMD-Konsole aufrufen, oder nur über das Cygwin-Terminal?
Bei 1.
Gebe folgendes ein: ("where" befindet sich in c:\windows\system32\)
where make
2.
Das Cygwin-Terminal sollte bei folgenden Aufruf:
which make
das hier zurückgeben:
/usr/bin/make
Bei "make" handelt es sich um eine EXE-Datei im \bin-Verzeichnis deiner Cygwin-Installation.
Beispiel: cygwin64\bin
Um "make" zu starten muss du es mit RunProgram() im richtigen Verzeichnis öffnen.
Kannst du "make" über die CMD-Konsole aufrufen, oder nur über das Cygwin-Terminal?
Bei 1.
Gebe folgendes ein: ("where" befindet sich in c:\windows\system32\)
where make
2.
Das Cygwin-Terminal sollte bei folgenden Aufruf:
which make
das hier zurückgeben:
/usr/bin/make
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: make von Cygwin im bestimmten Ordner aufrufen.
------------------------
Kannst du "make" über die CMD-Konsole aufrufen, oder nur über das Cygwin-Terminal?
------------------------
Geht nur über Cygwin-Terminal !
Meldung bei CMD-Console : cygwin1.dll nicht gefunden.
Danke.
Kannst du "make" über die CMD-Konsole aufrufen, oder nur über das Cygwin-Terminal?
------------------------
Geht nur über Cygwin-Terminal !
Meldung bei CMD-Console : cygwin1.dll nicht gefunden.
Danke.
Re: make von Cygwin im bestimmten Ordner aufrufen.
Kennst du deinen Pfad zur Cygwin-Installation?
Ist dir bekannt wo die "make.exe" ,die du über das Cygwin-Terminal aufrufst, gespeichert ist?
Ansonsten: Suche nach dieser "make.exe"
kleines (einfaches) Beispiel:
Dann kannst du z.B. eine "EnvironmentVariable" setzen.
Beispiel:
SetEnvironmentVariable("Path", "D:\cygwin64\bin") ;Beispielpfad
Eine 1. Ausgabe erhalten:
Ich hoffe das hilft erstmal weiter.
Ist dir bekannt wo die "make.exe" ,die du über das Cygwin-Terminal aufrufst, gespeichert ist?
Ansonsten: Suche nach dieser "make.exe"
kleines (einfaches) Beispiel:
Code: Alles auswählen
Global NewList Files.s()
Procedure Recursive_Search(sPath.s)
Protected iCurrDir.i, sName.s
iCurrDir = ExamineDirectory(#PB_Any, sPath.s, "*.*")
If iCurrDir
While NextDirectoryEntry(iCurrDir)
sName = DirectoryEntryName(iCurrDir)
If sName <> "." And sName <> ".."
If DirectoryEntryType(iCurrDir) = #PB_DirectoryEntry_File And FindString(sPath+"\"+sName, "\bin\make.exe")
AddElement(Files())
Files() = sPath + "\" + sName
Else
Recursive_Search(sPath + "\" + sName)
EndIf
EndIf
Wend
FinishDirectory(iCurrDir)
EndIf
EndProcedure
Recursive_Search("D:") ;Ändern
ForEach Files()
Debug Files()
Next
Beispiel:
SetEnvironmentVariable("Path", "D:\cygwin64\bin") ;Beispielpfad
Eine 1. Ausgabe erhalten:
Code: Alles auswählen
OpenConsole()
Compiler = RunProgram("make", "", GetCurrentDirectory(), #PB_Program_Open | #PB_Program_Read )
If Compiler
While ProgramRunning(Compiler)
If AvailableProgramOutput(Compiler)
Output$ + ReadProgramString(Compiler, #PB_UTF8) + Chr(13)
EndIf
Wend
Output$ + Chr(13) + Chr(13)
Output$ + "Exitcode: " + Str(ProgramExitCode(Compiler))
CloseProgram(Compiler) ; Schließt die Verbindung zum Programm
EndIf
PrintN(Output$)
Input()
CloseConsole()
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
Re: make von Cygwin im bestimmten Ordner aufrufen.
Danke für die Info.
Die make.exe ist in d:\cygwin\bin.
Das funktioniert ja nicht:
RunProgram("make.exe","", "d:\cygwin\bin")
Da komm ja die meldung mit der fehlenden dll in cygwin.
Gruss
Die make.exe ist in d:\cygwin\bin.
Das funktioniert ja nicht:
RunProgram("make.exe","", "d:\cygwin\bin")
Da komm ja die meldung mit der fehlenden dll in cygwin.
Gruss