thank you! yes, i guess that is the problem. unfortunately libcmt doesn't work. could it have another name for lli? The function missing seems to be part of libcmt since i get a similar error on linking if i remove the libcmt D:\llvm\examples\helloworld>lli -load=libcmt hello.bc Error opening 'libcmt': libcmt: Can't open: The specified module could not be found. (0x7E) -load request ignored. LLVM ERROR: Program used external function '___stdio_common_vsprintf' which could not be resolved! D:\llvm\examples\helloworld>link hello.obj Microsoft (R) Incremental Linker Version 14.00.24215.1 Copyright (C) Microsoft Corporation. All rights reserved. hello.obj : error LNK2019: unresolved external symbol ___acrt_iob_func referenced in function _printf hello.obj : error LNK2019: unresolved external symbol ___stdio_common_vsprintf referenced in function __vsnprintf_l hello.obj : error LNK2019: unresolved external symbol ___stdio_common_vfprintf referenced in function __vfprintf_l LINK : error LNK2001: unresolved external symbol _mainCRTStartup hello.exe : fatal error LNK1120: 4 unresolved externals On Sat, Feb 25, 2017 at 11:30 AM, don hinton <hintonda at gmail.com> wrote:> I think you need to tell lli which shared libraries to load, via "-load > option," in order to find missing symbols -- probably libcmt in this case, > since that's what you passed to link in the llc example. > > hth... > Don > > On Fri, Feb 24, 2017 at 9:02 PM jmiguel hernandez via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi >> i am wondering if someone could give me some tips on how to debug/solve >> this problem. I am trying to use LLI on Windows. I build llvm and clang >> using cmake. >> >> clang -c hello.c -emit-llvm -o hello.bc >> lli hello.bc >> D:\llvm\examples\helloworld>lli hello.bc >> LLVM ERROR: Program used external function '___stdio_common_vsprintf' >> which could not be resolved! >> >> But, I can generate the exe though >> llc -filetype=obj hello.bc >> link hello.obj -defaultlib:libcmt >> >> maybe i need a >> D:\llvm\examples\helloworld>clang --version >> clang version 5.0.0 (trunk 296084) (llvm/trunk 296083) >> Target: i686-pc-windows-msvc >> Thread model: posix >> InstalledDir: D:\llvm\build\Debug\bin >> >> D:\llvm\examples\helloworld>lli --version >> LLVM (http://llvm.org/): >> LLVM version 5.0.0svn >> DEBUG build with assertions. >> Default target: i686-pc-windows-msvc >> Host CPU: broadwell >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170227/d0592fb2/attachment.html>
On Linux I don't need to explicitly load the c standard library, but not sure what happens on windows. However, I think you need to pass the complete name, and perhaps the path. On windows I think the name is something like libcmt.lib, but have no idea where it lives. On Mon, Feb 27, 2017 at 12:44 PM jmiguel hernandez <jmiguel.hdez at gmail.com> wrote:> thank you! yes, i guess that is the problem. > unfortunately libcmt doesn't work. could it have another name for lli? > > The function missing seems to be part of libcmt since i get a similar > error on linking if i remove the libcmt > > > D:\llvm\examples\helloworld>lli -load=libcmt hello.bc > Error opening 'libcmt': libcmt: Can't open: The specified module could not > be found. (0x7E) > -load request ignored. > LLVM ERROR: Program used external function '___stdio_common_vsprintf' > which could not be resolved! > > > D:\llvm\examples\helloworld>link hello.obj > Microsoft (R) Incremental Linker Version 14.00.24215.1 > Copyright (C) Microsoft Corporation. All rights reserved. > > hello.obj : error LNK2019: unresolved external symbol ___acrt_iob_func > referenced in function _printf > hello.obj : error LNK2019: unresolved external symbol > ___stdio_common_vsprintf referenced in function __vsnprintf_l > hello.obj : error LNK2019: unresolved external symbol > ___stdio_common_vfprintf referenced in function __vfprintf_l > LINK : error LNK2001: unresolved external symbol _mainCRTStartup > hello.exe : fatal error LNK1120: 4 unresolved externals > > On Sat, Feb 25, 2017 at 11:30 AM, don hinton <hintonda at gmail.com> wrote: > > I think you need to tell lli which shared libraries to load, via "-load > option," in order to find missing symbols -- probably libcmt in this case, > since that's what you passed to link in the llc example. > > hth... > Don > > On Fri, Feb 24, 2017 at 9:02 PM jmiguel hernandez via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > Hi > i am wondering if someone could give me some tips on how to debug/solve > this problem. I am trying to use LLI on Windows. I build llvm and clang > using cmake. > > clang -c hello.c -emit-llvm -o hello.bc > lli hello.bc > D:\llvm\examples\helloworld>lli hello.bc > LLVM ERROR: Program used external function '___stdio_common_vsprintf' > which could not be resolved! > > But, I can generate the exe though > llc -filetype=obj hello.bc > link hello.obj -defaultlib:libcmt > > maybe i need a > D:\llvm\examples\helloworld>clang --version > clang version 5.0.0 (trunk 296084) (llvm/trunk 296083) > Target: i686-pc-windows-msvc > Thread model: posix > InstalledDir: D:\llvm\build\Debug\bin > > D:\llvm\examples\helloworld>lli --version > LLVM (http://llvm.org/): > LLVM version 5.0.0svn > DEBUG build with assertions. > Default target: i686-pc-windows-msvc > Host CPU: broadwell > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170227/91ac6c45/attachment.html>
i think Microsoft deprecated the stdio or something like that. but i don't know how to link it for lli :( D:\llvm\examples\helloworld>lli -load="c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libcmt.lib" hello.bc Error opening 'c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libcmt.lib': c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libc mt.lib: Can't open: Unknown error (0xC1) -load request ignored. LLVM ERROR: Program used external function '___stdio_common_vsprintf' which could not be resolved! 0xc1 is *ERROR_BAD_EXE_FORMAT* 193 (0xC1) %1 is not a valid Win32 application. D:\llvm\examples\helloworld>lli -extra-archive="c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\libcmt.lib" hello.bc LLVM ERROR: Program used external function '___stdio_common_vsprintf' which could not be resolved! D:\llvm\examples\helloworld>lli -extra-archive="c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\legacy_stdio_definitions.lib" hello.bc LLVM ERROR: Program used external function '___stdio_common_vsprintf' which could not be resolved! On Mon, Feb 27, 2017 at 3:18 PM, don hinton <hintonda at gmail.com> wrote:> On Linux I don't need to explicitly load the c standard library, but not > sure what happens on windows. However, I think you need to pass the > complete name, and perhaps the path. On windows I think the name is > something like libcmt.lib, but have no idea where it lives. > > > On Mon, Feb 27, 2017 at 12:44 PM jmiguel hernandez <jmiguel.hdez at gmail.com> > wrote: > >> thank you! yes, i guess that is the problem. >> unfortunately libcmt doesn't work. could it have another name for lli? >> >> The function missing seems to be part of libcmt since i get a similar >> error on linking if i remove the libcmt >> >> >> D:\llvm\examples\helloworld>lli -load=libcmt hello.bc >> Error opening 'libcmt': libcmt: Can't open: The specified module could >> not be found. (0x7E) >> -load request ignored. >> LLVM ERROR: Program used external function '___stdio_common_vsprintf' >> which could not be resolved! >> >> >> D:\llvm\examples\helloworld>link hello.obj >> Microsoft (R) Incremental Linker Version 14.00.24215.1 >> Copyright (C) Microsoft Corporation. All rights reserved. >> >> hello.obj : error LNK2019: unresolved external symbol ___acrt_iob_func >> referenced in function _printf >> hello.obj : error LNK2019: unresolved external symbol >> ___stdio_common_vsprintf referenced in function __vsnprintf_l >> hello.obj : error LNK2019: unresolved external symbol >> ___stdio_common_vfprintf referenced in function __vfprintf_l >> LINK : error LNK2001: unresolved external symbol _mainCRTStartup >> hello.exe : fatal error LNK1120: 4 unresolved externals >> >> On Sat, Feb 25, 2017 at 11:30 AM, don hinton <hintonda at gmail.com> wrote: >> >> I think you need to tell lli which shared libraries to load, via "-load >> option," in order to find missing symbols -- probably libcmt in this case, >> since that's what you passed to link in the llc example. >> >> hth... >> Don >> >> On Fri, Feb 24, 2017 at 9:02 PM jmiguel hernandez via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >> Hi >> i am wondering if someone could give me some tips on how to debug/solve >> this problem. I am trying to use LLI on Windows. I build llvm and clang >> using cmake. >> >> clang -c hello.c -emit-llvm -o hello.bc >> lli hello.bc >> D:\llvm\examples\helloworld>lli hello.bc >> LLVM ERROR: Program used external function '___stdio_common_vsprintf' >> which could not be resolved! >> >> But, I can generate the exe though >> llc -filetype=obj hello.bc >> link hello.obj -defaultlib:libcmt >> >> maybe i need a >> D:\llvm\examples\helloworld>clang --version >> clang version 5.0.0 (trunk 296084) (llvm/trunk 296083) >> Target: i686-pc-windows-msvc >> Thread model: posix >> InstalledDir: D:\llvm\build\Debug\bin >> >> D:\llvm\examples\helloworld>lli --version >> LLVM (http://llvm.org/): >> LLVM version 5.0.0svn >> DEBUG build with assertions. >> Default target: i686-pc-windows-msvc >> Host CPU: broadwell >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170227/138752f6/attachment-0001.html>