Hi, Ich will das visual studio zu coden benutzen. soweit funktioniert alles, nervig ist allerdings, dass man mit klick auf die Fehlermeldung nicht an die entsprechende Codezeile kommt, da der gcc ein Augabefortmat hat, was das studio nicht parst: gcc_ file:line: error: vs: file(line) : error das ist so ander hab ich mir gedacht und wollte den make-output durch den sed jagen. prinzipiell kein problem: echo ../main.c:77: error: expected ';' before 'piip' | sed 's/:\([0-9]\+\):/(\1) :/g' ein test in der CMD zeigt, das das fnktioniert wenn ich aber statt echo das make benutze, bleibt der putput unberührt hat jemand ne ahnung warum?
sollte natürlich heißen: "das ist so nicht sooo anders", hab ich mir gedacht und wollte den make-output durch den sed jagen.
Ich habe zwar Zweifel ob Du, wenn ich das richtig verstanden habe, Visual Studio mit gcc benutzen kannst, aber das lasse ich jetzt mal dahingestellt sein. Das Problem wird sein, das gcc bzw. der Output von make nicht über stdout sondern etwa stderr oder einen anderen Ausgabekanal rausgeschickt wird. Da musst Du mal schauen, was es da für Ausgabemöglichkeiten gibt und das entsprechend auf dein sed umlenken.
[quote]Das Problem wird sein, das gcc bzw. der Output von make nicht über stdout sondern etwa stderr oder einen anderen Ausgabekanal rausgeschickt wird.[/quote] Ah, du hast recht. wie piped man den stderr weiter? dateiumleitung funktioniert für den error-Kanal mittels 2> aber 2| funktioniet nicht.
Wenn du denn unbedingt den Berg zum Propheten verschieben musst: (*)
1 | ( gcc foo.c 2>&1 1>&4 | sed 's/:\([0-9][0-9]*\):/(\1) /g' ) 4>&1 |
Pipes kann man nur auf file descriptor 1 (stdout) aufsetzen, daher muss man den FD 2 (stderr) auf diesen umbiegen. Damit das ursprüngliche stdout aber nicht durch die Pipe geht, wird es innerhalb einer Subshell auf FD 4 gelegt, und außerhalb der Subshell (und außerhalb der Pipe) dann wieder auf FD 1 zurück gedreht. Allerdings erwischst du damit natürlich nur die Compilerfehler. Außerdem kann GCC zuweilen auch noch nach der Zeilennummer die Spaltennummer (mit einem weiteren Doppelpunkt getrennt) angeben. Keine Ahnung, was dein Visual Affenzirkus damit dann macht... (*) Eine vernünftige IDE kann man konfigurieren, wie die Fehlermeldungen aussehen.
@ A.K. hab deinen Post nicht gesehen hab auch grad http://technet.microsoft.com/en-us/library/bb490982.aspx gefunden, da steht genau dieseumleitung von kanal 2 auf 1 Trotzdem Danke Es funktioniert: make 2>&1 | sed 's/:\([0-9]\+\):/(\1) :/g' Jörg Wunsch >(*) Eine vernünftige IDE kann man konfigurieren, wie die Fehlermeldungen aussehen. Du willst damit nicht sagen, VS sei keine vernünftige IDE, oder? Sicher mag sie nicht perfekt sein, aber das ist wohl dennoch eine der ausgereiftesten, komfortablesten (und verbreitetsten) IDEs für c/c++, die es gibt. Hat halt jeder seine Vorlieben. Und besser als AVR-Studio ist sie allemal.
>VS sei keine vernünftige IDE Nun, ich pflege keine Unterhaltungen mit ihr zu führen oder ihr irgendwelche Urteile zu überlassen. Über ihre Vernunft kann ich also nichts sagen. Aber, da VS genau auf C++ bzw, C# (kommt darauf an, von welcher Ausgabe wir hier reden) mit MFC, STL uswusf. ausgerichtet ist, beschränkt sich im Zusammenhang mit gcc die Brauchbarkeit auf Syntaxhighlighting, Sprung zur Fehlerstelle und einspielen in CVS, SVN uswusf. Alles das aber kann ProgrammersNotepad genausogut. Das kommt mir eher so vor als, wenn ich einen beliebigen Melkschemel zum Türdrücker umbaue. Es geht, aber ein originaler Türdrücker hätte es auch gleich getan.
Du hast intellisense vergessen. (besonders unter c#, oder auch für c und c++ mit visualAssist-Plugin) Vergleichbar gutes habe ich bisher nur in Eclipse gesehen. Eclipse find ich aber ein wenig zu träge, weswgen ich es nur für java benutze (was nicht sehr häufig haißt).
>Du hast intellisense vergessen. (besonders unter c#, oder auch für c und >c++ mit
visualAssist-Plugin)
Ich habe es nicht vergessen, sondern ignoriert.
Aber gut, wenn Du das haben willst.
Und was nutzt Dir das mit gcc?
Was soll der Kompiler damit zu tun haben? Ist doch egal, ob ich den vs-compiler oder den gcc zum bauen benutze. zum Coden kann ich doch trotzdem das studio benutzen. gerade wegen des intellisense, will ich das ja, weil es mich nervt jedesmal in den Head zu schauen, wie genau die funktion jetzt hieß und was sie für parameter bracuht. Einizger nachteil ist, dass man das VS-projekt unabhängig vom Makefile pflegen muss, aber da ja außer am Anfang recht wenig Änderungen an der Projektstruktur gemacht werden, ist das auch nicht so schlimm. Aber jetzt schluss mit dieser Sinnlos-Diskussion. Du benutzt deinen vi, ich mein Studio und beide sind wir glücklich
@ vlad_tepesch
Tut mir leid, wenn Du das als Kritik verstanden hast. So war das nicht
gemeint und ich wollte Dich auch von nichts überzeugen. Meine Meinung
darf ich aber sicher sagen.
Aber ich kann doch immer was dazu lernen, oder? So wie Du hier fragst,
oder?
>Was soll der Kompiler damit zu tun haben?
Sicherlich nicht der Compiler selbst, aber die Libraries und Header
werden ja andere sein. Der Sinn der Frage, was Dir das denn mit gcc
nutzt, war, wie Du dem Intellisense beibringst diese zu verwenden. Ich
räume aber ein, das ich das anders hätte formulieren können, so das man
es nicht hätte als Ironie mißverstehen können.
ich wollte auch dich nicht angreifen, sondern nur verhindern das der glaubenskrieg, ob MS vS nun gut ist, oder nicht, aufhört. > wie Du dem Intellisense beibringst diese zu verwenden zum beispiel mit der angehangenen Projektdatei. im Studio ein neues Projekt erstellen "Makefile-projekt" da gibt man die build commands (build, clean, rebuild) an. und für das intellisense kann man außerdem noch die includepfade (zb zu dem winavr/avr/include - verzeichnis) und Präprozessor-defines angeben. schon ist das erledigt - und es programmiert sich (meiner meinung nach) viel entspannter. Zur Makefile-Pflege und zum simulieren (falls doch mal nötig) benutze ich weiterhin das AVR-Studio
vlad_tepesch wrote:
> Und besser als AVR-Studio ist sie allemal.
Das würde ich auch nicht freiwillig benutzen, allerdings zum Teil
natürlich schon deshalb, weil ich gar kein Windows habe. Zum
anderen Teil finde ich es in keinerlei Hinsicht wirklich eine
tolle Umgebung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.