I have been using Clang Compiler and check50 to write the programs in pset1 i.e hello.c and greedy.c I have found that check50 appears to say that hello.c and greedy.c compile ,even though the Clang compiler prints quite a few errors. If the compiler errors are more than 20 it appears to print Fatal errors and quits the program,even though check50 appear to say it copiles and prints the output checking the different cases in the problem specification.

I am assuming different compilers print different errors, since each copiler produces Object Code using the following four steps 1.Preprocessing,2compiling,3.assembling and4.linking Am I right in this assumption?

How even with fatal errors printed by Clang copiler, check50 says still it compiles a program and able to check different cases specified in a particular problem?

Ramaswami Sastry Vedam sastryv34@yahoo.com.au

  • check50 uses Clang as well. Are you using the same compile flags that are given in the pset? Any reason why you aren't using "make"?
    – curiouskiwi
    Jul 6 '14 at 0:53
  • asked again here: cs50.stackexchange.com/questions/1616/…
    – curiouskiwi
    Jul 6 '14 at 2:01
  • I am using make to produce the relevant .c file i.e I type greedy to obtain the greedy.c file
    – uma1966
    Jul 7 '14 at 20:43

There's no shortcut around it, you need to compile and run your program before you can check if it runs correctly, and to do that you need to fix your syntax errors. Don't worry about check50 until you have your program running.


It's possible that your environment is configured differently to the one which is used by check50.

When you run check50 your code is uploaded to a server which compiles and runs your code using a set of inputs with known outputs.

Not all compilers, or the platforms which they run on, are equal. For example, of you are compiling on a windows platform, you may still be able to use the clang compiler but you will not be able to compile any code using, the POSIX libraries which are available on *nix type platforms.

The differences in these environments is the reason why the CS50 appliance is made available to students. The appliance is a pre-configured virtual machine, which is configured to compile and run code in a consistent and predictable way.

You did not indicate if you are using the appliance or not.

If you are not already using the CS50 appliance instructions for downloading and installing it are available at https://manual.cs50.net/appliance/19/. The site also has troubleshooting tips if you are having problems installing it. I personally found that downloading the VirtualBox version using the HTTP link gave the least hassles.

  • Thank you very much for clarifying a few points regarding Clang Compiler. Kareem while answering one of my questions hementioned that there is no semicolon after the statement integer main (void). But the Clang compiler gives an error message. Further some messages ,I do not understand.
    – uma1966
    Jul 6 '14 at 21:15
  • I am using CS50 Appliance.uma 1966 reply to @user1705
    – uma1966
    Jul 7 '14 at 22:30

Not the answer you're looking for? Browse other questions tagged .