AiMiDi / libiconv

GNU General Public License v3.0
0 stars 0 forks source link

Compile error with MSVC #1

Closed nono303 closed 3 months ago

nono303 commented 3 months ago

Hi @AiMiDi Just a quick patch to allow MSVC build and avoid error:

[19/70] Building C object CMakeFiles\genflags.dir\libiconv\lib\genflags.c.obj
FAILED: CMakeFiles/genflags.dir/libiconv/lib/genflags.c.obj 
C:\sdk\softs\vs22\Community\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64\cl.exe  /nologo   /std:clatest /DWIN32 /D_WINDOWS /w /MD /Zi /Gw /Gy /Zc:inline /O2 /Zf /Zi /FS /MP16 /arch:AVX2 /w /DNDEBUG /showIncludes /FoCMakeFiles\genflags.dir\libiconv\lib\genflags.c.obj /FdCMakeFiles\genflags.dir\ /FS -c C:\sdk\src\libiconv_cmake\libiconv\lib\genflags.c
C:\sdk\src\libiconv_cmake\libiconv\lib\genflags.c(37): error C2016: C requires that a struct or union have at least one member
C:\sdk\src\libiconv_cmake\libiconv\lib\genflags.c(38): error C2016: C requires that a struct or union have at least one member
C:\sdk\src\libiconv_cmake\libiconv\lib\genflags.c(39): error C2016: C requires that a struct or union have at least one member
 lib/genflags.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/genflags.c b/lib/genflags.c
index 9f3d15d..3575aa6 100644
--- a/lib/genflags.c
+++ b/lib/genflags.c
@@ -34,9 +34,9 @@
 #define USE_ZOS
 #define USE_EXTRA

-struct loop_funcs {};
-struct iconv_hooks {};
-struct iconv_fallbacks {};
+struct loop_funcs {char unused;};
+struct iconv_fallbacks {char unused;};
+struct iconv_hooks {char unused;};
 #define ICONV_SURFACE_EBCDIC_ZOS_UNIX  1
 #include "converters.h" 

actually dirty, maybe better to do but work fine for me with MSVC 14.40 x64 cmake build

AiMiDi commented 3 months ago

fix at: https://github.com/AiMiDi/libiconv/tree/fix-C2016