MINGW-packages: unknown type name 'USN'

Hi,

When I try to compile double precision CalculiX I have this error (standard version is OK):

C:/msys64/mingw64/x86_64-w64-mingw32/include/winioctl.h:1454:3: error: unknown type name 'USN'
 1454 |   USN Usn;

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 24 (18 by maintainers)

Most upvoted comments

I have the same error for such a simple example (example.c):

#include <stdio.h>
#include <windows.h>
int main() {
   // printf() displays the string inside quotation
   printf("Hello, World!");
   return 0;
}

I was able to work around this problem temporarily for CalculiX (but it still persists).

For -DINT:

$ gcc -o example example.c -DINT
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected ';', ',' or ')' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
<command-line>: error: expected declaration specifiers or '...' before numeric constant
In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/windows.h:89,
                 from example.c:2:

Oh my GOD! This open issue is one year old!!!

No issues here!

image

Oh my GOD! Try with -DLONGLONG

@lazka may I ask you for help with this issue

The problem is most likely only with these two files: external.c and getSystemCPUs.c, only these files have a reference to: #include <windows.h> image

Yes, I still have this error. My full error for a brand new mingw/msys2 installation

<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected identifier or '(' before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant

and

<command-line>: error: expected specifier-qualifier-list before numeric constant
In file included from C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winscard.h:11,
                 from C:/msys64_test/mingw64/x86_64-w64-mingw32/include/windows.h:97,
                 from getSystemCPUs.c:29:
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1430:3: error: unknown type name 'USN'
 1430 |   USN LowUsn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1431:3: error: unknown type name 'USN'
 1431 |   USN HighUsn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1440:3: error: unknown type name 'USN'
 1440 |   USN StartUsn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1454:3: error: unknown type name 'USN'
 1454 |   USN Usn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1492:3: error: unknown type name 'USN'
 1492 |   USN FirstUsn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1493:3: error: unknown type name 'USN'
 1493 |   USN NextUsn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1494:3: error: unknown type name 'USN'
 1494 |   USN LowestValidUsn;
      |   ^~~
C:/msys64_test/mingw64/x86_64-w64-mingw32/include/winioctl.h:1495:3: error: unknown type name 'USN'
 1495 |   USN MaxUsn;
      |   ^~~
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
<command-line>: error: expected specifier-qualifier-list before numeric constant
make: [Makefile_mingw_i8:16: ccx_i8/external.o] Error 1 (ignored)