일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스탠바이미2사용후기
- 스탠바이미2실사용
- log
- 닌텐도스위치2출시
- firebase
- error
- 스탠바이미2총평
- 닌텐도2
- 스트리밍
- Gradle
- 스탠바이미2리뷰
- Android
- 스탠바이미2출시
- ethereum
- 스탠바이미2후기
- kotlin
- convert
- Exception
- Realm
- C
- 가벼운갤럭시
- 스탠바이미2단점
- 컴파일
- 안드로이드
- test
- Glide
- 닌텐도스위치2게임
- 스탠바이미2세대
- 다윈
- 스탠바이미2장점
- Today
- Total
날마다 새롭게 또 날마다 새롭게
[cygwin] gcc 컴파일 에러 - unknown type name __int64 본문
참고 : http://stackoverflow.com/questions/27891478/error-when-compiling-in-cygwin
GCC Version : 4.9.2
Cygwin x64
Cygwin 에서 gcc로 jni 컴파일 할 때, 다음과 같은 에러가 발생하는 경우가 있다.
jni_md.h 에서 __int64 타입을 모른다는 내용이다.
$ gcc -fPIC -c -I"$JAVA_HOME"/include -I"$JAVA_HOME"/include/win32 helloworld.c
helloworld.c:1:0: warning: -fPIC ignored for target (all code is position independent)
^
In file included from /cygdrive/c/Program Files/Java/jdk1.8.0_31/include/jni.h:45:0,
from kr_or_aesop_HelloWorld.h:2,
from helloworld.c:2:
/cygdrive/c/Program Files/Java/jdk1.8.0_31/include/win32/jni_md.h:34:9: error: unknown type name ‘__int64’
typedef __int64 jlong;
이 에러를 해결하기 위해서는 $JAVA_HOME/include/win32/jni_md.h 수정이 필요하다.
원본 파일은 다음과 같다.
typedef long jint;
typedef __int64 jlong;
typedef signed char jbyte;
를 다음과 같이 수정한다.
typedef long jint;
#ifdef __GNUC__
typedef long long jlong;
#else
typedef __int64 jlong;
#endif
typedef signed char jbyte;
그리고 fPIC ignored for target 에러는
$ gcc -fPIC -c -I"$JAVA_HOME"/include -I"$JAVA_HOME"/include/win32 helloworld.c
helloworld.c:1:0: warning: -fPIC ignored for target (all code is position independent)