<p>Op 9 dec. 2011 11:48 schreef "Peter Hanzel" <<a href="mailto:hanzelpeter@gmail.com">hanzelpeter@gmail.com</a>> het volgende:<br>
><br>
> Hello.<br>
><br>
> I have downloaded CLANG 3.0 and successfuly build on Windows XP.<br>
> Now I tried to compile this simple MessageBox Win32 Api program:<br>
><br>
> #include <windows.h><br>
><br>
> int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {<br>
> MessageBox(NULL, "hello msgbox world\n", "Title", MB_OK);<br>
> return 0;<br>
> }<br>
><br>
> I did it this way:<br>
><br>
> clang -c -emit-llvm main.c<br>
> llc -filetype obj main.o -o test.obj<br>
> link test.obj user32.lib msvcrt.lib<br>
><br>
> But when I run test.exe I get : The procedure entry point InterlockedCompareExchange64 could not be located in dynamic link library KERNEL32.dll.<br>
><br>
> So I dissassembled main.o and there is usage of: (attached to mail)<br>
><br>
> declare dllimport x86_stdcallcc i64 @InterlockedCompareExchange64(i64*, i64, i64)<br>
><br>
> But I think this is valid only for 64bit or Vista and more.<br>
> So I deleted whole stuff which is not needed to compile it.<br>
> Then with:<br>
><br>
> llvm-dis main.o<br>
> edit main.o.ll --remove 64bit stuff<br>
> llvm-as main.o.ll -o main.o<br>
> llc -filetype obj main.o -o test.obj<br>
> link test.obj user32.lib msvcrt.lib<br>
><br>
> And I got valid test.exe application, which also works.<br>
><br>
> So my question is: Is this Adding of unwanted stuff correct or is it some kind of bug?</p>
<p>Did you define the winver macro correctly? Does the problem still occur then?</p>
<p>Ruben<br>
><br>
> Peter.<br>
><br>
><br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
><br>
</p>