How do I USE this?

Hello,

I’m trying to get a new compiler working because GCC is simply not working on my system. I’ve heard great things about LLVM / CLang, and would like to try it out, but I’m having trouble getting it to work at all.

I installed LLVM-4.0.1-win64.exe on Windows 7 64-bit, and I’m trying to get it working with the Code::Blocks IDE.

Code::Blocks wants the following information in its toolchain entered into executables dialog.

What it wants My best guess

C Compiler clang.exe

C++ Compiler clang++.exe

Linker for dynamic libs: llvm-lib.exe

Linker for static libs: llvm-ar.exe

Debugger: GDB/CDB debugger

(dropdown list, this is the only option.)

Resource compiler: windres.exe (not in clang set.)

Make program mingw32-make.exe (not in clang set.)

Are these correct? Does LLVM / Clang come with a Windows resource compiler and make program?

When I try to compile a main() that simply increments a number and returns,

using namespace std;

int main()

{

int j = 0;

for (int i = 0; i < 1000; i++) j++;

return j - 1000;

}

I get the following messages:

clang++.exe -Weverything -fexceptions -O2 -c “E:\Files and Documents\Development\CompilerBasicTest\main.cpp” -o obj\Release\main.o

E:\Files and Documents\Development\CompilerBasicTest\main.cpp:3:17: warning: using directive refers to implicitly-defined namespace ‘std’

using namespace std;

^

1 warning generated.

llvm-lib.exe -o bin\Release\CompilerBasicTest.exe obj\Release\main.o -s

ignoring unknown argument: -o

ignoring unknown argument: -s

bin\Release\CompilerBasicTest.exe: no such file or directory

Process terminated with status 1 (0 minute(s), 0 second(s))

0 error(s), 1 warning(s) (0 minute(s), 0 second(s))

So even without the standard libraries, I’m having trouble with the most basic compilation and building, but I have no clue what to do.

When I try to build a basic Hello World program:

#include

using namespace std;

int main()

{

cout << “Hello world!” << endl;

return 0;

}

I get the following messages in the build log

-------------- Build: Release in CompilerBasicTest (compiler: LLVM Clang Compiler)---------------

clang++.exe -Weverything -fexceptions -O2 -c “E:\Files and Documents\Development\CompilerBasicTest\main.cpp” -o obj\Release\main.o

E:\Files and Documents\Development\CompilerBasicTest\main.cpp:1:10: fatal error: ‘iostream’ file not found

#include

^~~~~~~~~~

1 error generated.

Process terminated with status 1 (0 minute(s), 0 second(s))

1 error(s), 0 warning(s) (0 minute(s), 0 second(s))

I also get a similar message for . How do I get the standard C and C++ libraries?

Once I get basic compilation working with the standard c / c++ include files, I’m going to have to get it working for making actual windows programs. I have TDM’s MinGW. Is there anything special I need to do to get clang to recognize <windows.h> and other Windows OS include files, or do I just point the compiler search paths at MinGW?

I’m sorry if these questions have already been asked and answered, but I haven’t found a useful way to search the cfe-users archives. (Does the BSD community have an acquired allergy to off-the-shelf forum software? Just asking.)

Any help would be appreciated.

Thanks.