Hello, I'm playing around with the llvm-tools. On linux everything worked as expected: I downloaded and compiled the llvm-source. Assembled (llvm-as) and linked (llvm-ld) a hello_world program and executed it successfully. For windows I have downloaded the compiled mingw32-binaries: http://llvm.org/releases/2.2/llvm-2.2-x86-mingw32.tar.bz2 I used the following hello_world program from the documentation: hello_world.ll: ---------------------------------------------------------------------------------- ; Declare the string constant as a global constant... @.LC0 = internal constant [13 x i8] c"hello world\0A\00" ; [13 x i8]* ; External declaration of the puts function declare i32 @puts(i8 *) ; i32(i8 *)* ; Definition of main function define i32 @main() { ; i32()* ; Convert [13x i8 ]* to i8 *... %cast210 = getelementptr [13 x i8 ]* @.LC0, i64 0, i64 0 ; i8 * ; Call puts function to write out the string to stdout... call i32 @puts(i8 * %cast210) ; i32 ret i32 0 } ---------------------------------------------------------------------------------- I assembled it with: "llvm-as -f hello_world.ll" If I try to run the bytecode with: "lli hellow_world.bc" - I get the following error: ERROR: Program used external function '__main' wich could not be resolved! I get the same error if I link the program with: "llvm-ld -v --stats hello_world.bc -o hello_world.exe" ... and execute the resulting "hello_world.exe" What I'm doing wrong? And somehow related questions are: Which external libraries gets automatically included during linking (what are the dependencies) Only the standard c library? Is it possible to not include it? Or link it static? Is the behavior the same on all platforms? I'm happy if someone can point me to a documentation regarding these questions. Thanks a lot for such a great compiler tool set! - Ralf