View Poll Results: Your most used C/C++ compiler?

Voters
40. You may not vote on this poll
  • MS Visual Studio

    22 55.00%
  • Borland

    2 5.00%
  • GCC

    25 62.50%
  • Other paid (Please post)

    1 2.50%
  • Other free (Please post)

    3 7.50%
  • Other open-source (Please post)

    3 7.50%
Multiple Choice Poll.

Thread: Your most used compiler

  1. #31
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Elysia View Post
    And -wextra and the standard (C99, etc) parameters and pedantic?
    It seems to me that just hitting a button (ie F7 in case of visual studio) would be faster...
    See, this is the part where we learn about writing code rather than how to use someone's else's point n' click interface:
    Code:
    #!/bin/bash
    
    gcc -Wall -std=c99 -pedantic -superoptimize -bioniclinking -maxbugfixx -o $1 ./$1.c
    Now I can call this script "F7" and on the command-line:

    F7 myprog

    Some OS's also allow individual users to keep their own environment variables, eg. here's one of mine:

    [root~/shell] echo $CGTK
    -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/pango-1.0 -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0

    Unless you feel like clicking options instead of typing it out is faster and better.
    Usually, because the cursor does not have to circumnavigate the screen in the process. And every time your hand leaves the keyboard to reach for the mouse, be sure to say "Please, I want carpal tunnel syndrome now more than ever."

    So, you are a proponent of "The MacDonald's Diet", I imagine as well

    I suspect it's because they use Run With Debug (F5), which makes the console disappear when the program is finished.
    Yet, using Run Without Debug (Ctrl+F5) makes the console window stay after the program is finished. A breakpoint in debug mode or run without debug is all that's needed.
    Thanks for that. I'm sure I will be passing it on soon! I can even say, "If you are going to use an IDE, at least try the breakdance..."
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  2. #32
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by MK27 View Post
    See, this is the part where we learn about writing code rather than how to use someone's else's point n' click interface:
    Code:
    #!/bin/bash
    
    gcc -Wall -std=c99 -pedantic -superoptimize -bioniclinking -maxbugfixx -o $1 ./$1.c
    Now I can call this script "F7" and on the command-line:

    F7 myprog

    Some OS's also allow individual users to keep their own environment variables, eg. here's one of mine:

    [root~/shell] echo $CGTK
    -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/pango-1.0 -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
    Looks... complicated, messy and scary.
    I'd rather focus on learning how to write code than to write that.

    Usually, because the cursor does not have to circumnavigate the screen in the process. And every time your hand leaves the keyboard to reach for the mouse, be sure to say "Please, I want carpal tunnel syndrome now more than ever."
    No, that's just you...

    Thanks for that. I'm sure I will be passing it on soon! I can even say, "If you are going to use an IDE, at least try the breakdance..."
    And command line is what? Typedance?
    Never heard of that kind of dance, so I'm not sure I can do it...
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  3. #33
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Just to perhaps offer some perspective, an IDE's build log is just as "complicated, messy, and scary." When you get right down to it every switch has a function, you probably have a friendly manual...

    As far as whats good for a beginner, I have to personally admit that I wasn't confused by a CLI setup, once the build process was properly explained to me, and I had used it for a long time, early on in my studies. I don't see the massive problem in other people learning a basic build instruction, such as:

    gcc foo.c -o foo -Wall -ansi -pedantic

    Refusing to teach something or learn something because it is confusing seems like rather poor reasoning to me too. Why stop at the build process, when programming itself is complicated? If people do not push their boundaries, they become happy in mediocrity.

    Though I am curious what exact "observations" MK27 has made from cboard about newbies....

  4. #34
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by whiteflags View Post
    Just to perhaps offer some perspective, an IDE's build log is just as "complicated, messy, and scary." When you get right down to it every switch has a function, you probably have a friendly manual...
    Often, such as Visual Studio, they spew out exactly what the compiler and linker spews out, so using the IDE vs command line here doesn't really matter.
    However, Visual Studio has an advantage, since it's able to filter the output into an Error List. I have to give the advantage to the IDE there.

    As far as whats good for a beginner, I have to personally admit that I wasn't confused by a CLI setup, once the build process was properly explained to me, and I had used it for a long time, early on in my studies. I don't see the massive problem in other people learning a basic build instruction, such as:

    gcc foo.c -o foo -Wall -ansi -pedantic

    Refusing to teach something or learn something because it is confusing seems like rather poor reasoning to me too. Why stop at the build process, when programming itself is complicated? If people do not push their boundaries, they become happy in mediocrity.
    The discussion was if it is better for beginners to use command lines rather than an IDE.
    At best, I would think they are equal, at least for experienced programmers. For beginners, I definitely recommend an IDE such as Visual Studio.
    But this is all subjective...
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  5. #35
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by whiteflags View Post
    Though I am curious what exact "observations" MK27 has made from cboard about newbies....
    Usually -- this is deductive and not empirical so I could be quite wrong -- it seems to me that because newbie-X did not have to issue commands to a compiler directly, newbie-X is a little confused about where/what include files are and what (non-standard) switches may be necessary. Hence, newbie-X may even be a little confused about what a filesystem is.

    Of course, that could happen using gcc on the command line (it is not as if GNU sends over a team of well-wishers with a welcoming gift, either), but it should be slightly more obvious what the possibilities are there, without such a crazy closet to go thru, and of course, it is very easy to read this demonstrative example:

    gcc myprog -lm

    meaning the learning curve might be slightly faster w/o the IDE. You can always learn about all that later, and it will probably make that much more sense by then because you will have experience getting more intimate with the compiling process.

    GUI debugging is something to be jealous about, tho. I would go for more dedicated debugging tools and less of the "all-in-one" mega-app.
    Last edited by MK27; 07-15-2009 at 03:29 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  6. #36
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by MK27 View Post
    GUI debugging is something to be jealous about, tho. I would go for more dedicated debugging tools and less of the "all-in-one" mega-app.
    Aha!
    I never thought I'd hear you promote any type of GUI, even if just little!
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  7. #37
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Elysia View Post
    Aha!
    I never thought I'd hear you promote any type of GUI, even if just little!
    Actually, two of the coolest, most useful programs I've ever seen are both GUI's:
    TkCodex
    See: text and manpage viewer for linux
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  8. #38
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Quote Originally Posted by Elysia View Post
    Aha!
    I never thought I'd hear you promote any type of GUI, even if just little!
    Well we're not all evangelists of "the one true way."

    Quote Originally Posted by Elysia View Post
    Often, such as Visual Studio, they spew out exactly what the compiler and linker spews out, so using the IDE vs command line here doesn't really matter.
    However, Visual Studio has an advantage, since it's able to filter the output into an Error List. I have to give the advantage to the IDE there.


    The discussion was if it is better for beginners to use command lines rather than an IDE.
    At best, I would think they are equal, at least for experienced programmers. For beginners, I definitely recommend an IDE such as Visual Studio.
    But this is all subjective...
    Well I don't think this is a ........ing in the wind type of discussion, POV based or not.

    In the first paragraph, I think you understand what my point was. If it's equally good for beginners to use IDEs and the CLI, then I don't think we should just scoff at the idea of equal time, at least. (For example, using cygwin for part of the term before using something like SlickEdit or what have you.) In formal education, the CLI is often completely ignored because you're using an IDE. They don't really cover what's in the build log. While it seems up to one's prerogative (or fate) whether they use the information present at some point in their professional lives, understanding the build process, and how exactly your tools work are fundamentals.

    There's no reason why you can't learn that stuff later too (for specific tools), but life is often inconvenient in that we may wait too long, and a difficult problem arises. I'm left wondering how much is left out of formal education, not because it's unimportant to learn, but simply because there isn't enough time. Ask a professor why s/he isn't teaching item a, and you'll get that sort of response.

  9. #39
    Registered User
    Join Date
    Dec 2008
    Location
    Black River
    Posts
    128
    I use MSVC and Mingw on Windows. MSVC is fast and Mingw has most of the GNU extensions that I normally abuse when portability isn't a concern.

    On Linux, I prefer gcc and the non-commercial version of icc. Intel's compiler is probably my favourite of bunch: The math library is awesome, and it probably outperforms every other compiler out there (Provided you're on an Intel-CPU, I've heard very different opinions from AMD users).

  10. #40
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    The debate seems a little sterile in my opinion. I apologize for the bluntness. But it's just that everyone is right, you see. I'd go both ways concerning compilers. I think the CLI vs GUI debate is more interesting when discussing other things, like computer maintenance, or the ability to control applications, or user interface advantages/disadvantages.

    On the subject of compilers, the apprenticeship strategy may as well dictate either a GUI or a CLI as initial environments with equal results. An hands-on practical approach like that promoted on Accelerated C++ by Koenig and B. Woo, surely benefits from a GUI since the reader doesn't need the aggravation of battling with non-essentials like compiler syntax and build scripts. On the other hand, a bottom-top approach like described in C++ Primer by Lippman et all, benefits from a CLI since it starts at the very basics of programming methodologies.

    Assuming they went with a GUI, the question then remains how much beneficial will it be for them to later learn about CLI mode compilation. Sincerely, I have my doubts. Definitely it will always depend on the platform where the development takes place. But... listen to this:

    I started to learn about C++ with gcc. After the 1st day I was already looking into IDEs and build script solutions. I'd be nuts if I would waste my time dealing with all the syntax involved. I wanted to learn C++, not gcc. Certainly with time -- and because I still use gcc ostensively -- I ended up knowing more about gcc syntax than I will ever about C++ programming. But after that first day, my true aprenticeship of the programming language was done through a gcc IDE and only much, much later I started looking into Make and other infernal tools, like CMake or GBS.

    Ironically I tend to use these tools today by copy-pasting script portions, which essentially means I'm unlearning gcc syntax. Actually forgetting about it. I find myself often resorting to the gcc manual more often than before.

    So CLI advantageous? Nah, I don't buy it. Not when it comes to code compilation and application building. Truth is, even when presented with a CLI as the only option, we want to stay as far away from it as we can. From a Linux IDE to Make, all is fair game.
    Last edited by Mario F.; 07-15-2009 at 05:39 PM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  11. #41
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by MK27 View Post
    And besides, I did say "if you want (even more) warnings, just add -Wall", didn't I?
    Actually, you should be using "-W -Wall" since there are actually some warnings that are reported with -W but not with -Wall. I ran into one just the other day, actually, although I can't remember what it was.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  12. #42
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    And besides -Wextra (old -W), there's still more stuff to add. My favorite, -Wswitch-default (warns when a switch has no default case).

    And there's the -Wno- prefix, which suppresses a warning activated by -Wall or -Wextra. My favorite, -Wno-unused-variable, which comes handy sometimes during debugging builds.

    I do appreciate gcc intuitive syntax. I give it that much. Much clearer than Visual C++.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  13. #43
    Registered User
    Join Date
    Aug 2006
    Posts
    163
    For personal use I use TextWrangler and gcc(OS X 10.4).

    Most of the coding I do is at work, where we use cutting edge technologies like Visual Studio 6.0...

  14. #44
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by MK27
    See, this is the part where we learn about writing code rather than how to use someone's else's point n' click interface:
    But you are not writing C. I think cpjust made a good point: "Learning everything at the same time is a formula for disaster." You could end up just providing the shell script to the beginner, but then the beginner would just be learning how to use someone else's shell script, and in the end that is not much different from learning how to use someone else's point and click interface.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  15. #45
    Banned ಠ_ಠ's Avatar
    Join Date
    Mar 2009
    Posts
    687
    ... a total of 152.18% right now
    Internet polls sure are trustworthy
    ╔╗╔══╦╗
    ║║║╔╗║║
    ║╚╣╚╝║╚╗
    ╚═╩══╩═╝

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Compiler Paths...
    By Cobra in forum C++ Programming
    Replies: 5
    Last Post: 09-26-2006, 04:04 AM
  2. C Compiler and stuff
    By pal1ndr0me in forum C Programming
    Replies: 10
    Last Post: 07-21-2006, 11:07 AM
  3. I can't get this new compiler to work.
    By Loduwijk in forum C++ Programming
    Replies: 7
    Last Post: 03-29-2006, 06:42 AM
  4. how to call a compiler?
    By castlelight in forum C Programming
    Replies: 3
    Last Post: 11-22-2005, 11:28 AM
  5. Bad code or bad compiler?
    By musayume in forum C Programming
    Replies: 3
    Last Post: 10-22-2001, 09:08 PM

Tags for this Thread