|
From: | Remi Chateauneu |
Subject: | [Mingw-cross-env-list] printf("%lld %jd" unknown conversion type character 'l' and 'j' in format |
Date: | Fri, 12 Apr 2013 01:32:25 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.2.12) Gecko/20101027 Lightning/1.0b2 Thunderbird/3.1.6 |
Hi,Still trying to compile and link fldigi with MXE, and I get the error with the following line:
printf("%lld %jd", freq, (intmax_t)rtime );spot/pskrep.cxx:735:2: warning: unknown conversion type character 'l' in format [-Wformat] spot/pskrep.cxx:735:2: warning: unknown conversion type character 'j' in format [-Wformat]
Some details about a similar problem here: http://sourceforge.net/mailarchive/message.php?msg_id=23004498
As you can see, it interprets the unsigned long long as a 32 integer, and not 64 bit one...Which is exactly as you should expect, when you use the standard Microsoft implementations of printf, scanf and friends, (as MinGW does).
This leaves me a bit surprised because "long long" has to be 64 bits everywhere I think. Anyway, the program fldigi compiles fine with this version of mingw: https://fedorahosted.org/fldigi/wiki/Documentation/HOWTO/BuildOnMinGW CC=i586-mingw32msvc-gcc msvc means ( http://sourceware.org/ml/crossgcc/2006-02/msg00256.html ): "The mingw tool chain uses the Microsoft C runtime library (MSVCRT.DLL)." It is a bit problematic to change the code. Do you please think there is another solution ? Many thanks in advance. Remi
[Prev in Thread] | Current Thread | [Next in Thread] |