Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.10.2012, 20:23

Programm soll eigenen quellcode selbst kompillieren

Hallo

Ich will ein Programm schreiben dass eine z.b. textdatei an z.b. Code::Blocks (kann auch ein anderer C++-Compiler sein) sendet und dann Code::Blocks diese kompiliert. Ein ungefährer Quellcode wäre super, mir fällt nichts dazu ein wie ich das umsetzen könnte.

Vielen Dank! :)

2

28.10.2012, 20:29

An sich kann Code::Blocks nicht selbst kompilieren, da es kein Compiler ist. Du könntest im Internet nach gcc oder co. suchen, wie man es mit der Konsole benutzt (ist relativ einfach). Das ist eine reine Such-Arbeit.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

3

28.10.2012, 21:18

Ave!
Code::Blocks nutzt als Standard GCC, ergo müsstest du via std::system oder Ähnlichem Kommandos wie "g++ -c main.cpp" absenden. Ein Programm sich selbst kompillieren lassen ist allerdings Humbug, und auch nicht dein Ziel. Die Bedienung eines Compilers über Shell-Befehle lässt sich überall nachschlagen.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

29.10.2012, 07:33

Ein Programm sich selbst kompillieren lassen ist allerdings Humbug


Wäre doch mit einem Quine möglich. :)
@D13_Dreinig

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

5

29.10.2012, 09:32

Mit einem Quine und einem externen Compiler, wie der Rest des Threads bereits beschreibt :-)

Die übliche Frage hier: was hat der Diskussionsgründer eigentlich vor? Es könnte sein, dass er nur eine Skriptsprache braucht - siehe LUA, AngelScript - oder dass er wie manch anderer vor ihm mit nur marginalem Verständnis der Materie trotzdem einen kleinen Trojaner schreiben will.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

29.10.2012, 09:52

Ich denke er möchte einfach einen Quellcode Editor schreiben in welchem man dann hinterher auch kompilieren kann. Sieht für mich stark so aus. Ist alles nicht ganz einfach, aber wenn du das ganze stark beschränkst wirst du sicherlich ein paar Ergebnisse hinkriegen. Tipps dafür wurden hier an sich schon geschrieben. Was noch wichtig wäre, willst du das ganze auch in C++ schreiben oder in einer anderen Sprache? Manche Sprachen wie zum Beispiel Java bieten direkt schon Methoden an um sich selbst zu kompilieren. Mit C++ klappt das natürlich so nicht.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

7

29.10.2012, 10:56

Vielen Dank für die vielen Antworten :)

Im Internet habe ich diese Pdf-Datei gefunden: http://www.imd.uni-rostock.de/ma/rs/lv/hopi/windows.pdf
Abschließend hier noch beispielhaft, wie man das ganze im Quellcode umsetzen kann:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
    string a;
    cin >> a;
    string b="cmd /c g++ -Wall -o C:\\Spiele\\Hallo.exe C:\\Spiele\\Hallo.c";
    cout << b.c_str() << endl;
    system(b.c_str());
    cout << "Hello world!" << endl;
    cin >> a;
    return 0;
}



Mein Ziel ist es, ein Programm zu machen, bei dem Mathemathematische Funktion (z.b. Potenzieren oder logarithmus) einprogrammierbar sind, bzw. die das programm selbst programmieren soll. Bin mir allerdings noch nicht sicher ob das so klappen wird. Falls Interesse besteht kann ich Das Programm gerne noch posten, wenn ich so weit bin :)

LG
Zuko

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

8

29.10.2012, 11:21

bei dem Mathemathematische Funktion (z.b. Potenzieren oder logarithmus) einprogrammierbar sind

dir ist schon bewusst, dass Programmiersprachen solche Funktionen können?! Oder verstehe ich da was falsch in deinen Absichten?

9

29.10.2012, 13:48

Ich meinte das so, dass z.b Potenzieren ein Algorithmus ist (mulitpliziere so oft wie Potenz angibt) und dass es sozusagen ein Algorithmus für Algorithmen ist. :)

Lg zuko

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

10

29.10.2012, 14:00

Wie gesagt, diese Funktionen stehen normal schon zur Verfügung in der Programmiersprache. Falls du möchtest, dass man dein Programm erweitern kann, indem man einen neuen Algorithmus hinzufügt, den Quellcode angibt und dies dann hinterher in deinem Programm nutzbar ist, dann solltest du da anders ran gehen. Du könntest da mit DLL's arbeiten oder aber, was ich bevorzugen würde auf eine Skriptsprache zurück greifen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige