리눅스 64bit에서 32bit 라이브러리 사용하기

제품 테스트를 위해 리눅스에서 32bit JNI 모듈을 실행해야 하는 일이 생겼다. 32bit 리눅스에서 32bit 모듈을 실행하는 경우에는 아무런 문제가 없지만, 32bit 리눅스 장비를 사용할 일이 거의 없으므로 64bit 장비에서 32bit 모듈을 테스트 하려 했지만 실패했다. 모듈 테스트는 커녕 32bit Java를 사용하려고 하니 No such directory or file 이라는 에러가 나왔다. 환경 변수가 잘못 잡힌거라 생각했으나 해당 경로로 직접 들어가서 실행하려해도 No such directory or file 에러가 발생했다. 처음에 에러 내용만 봤을때는 OS bit 문제일 거라고는 전혀 생각이 안 났지만, 해당 오류를 검색해보니 64bit 리눅스에서 32bit 프로그램을 실행하려 했기 때문이라는 것을 알 수 있었다. No such directory or file에러 외에도 다음과 같은 에러가 발생할 수 있다. `The 32bit suppor

2023년 7월 18일
·
2개의 댓글
·

리눅스에서 C/C++ 컴파일 하기 (#2)

빌드 예제 세 개의 소스파일을 컴파일하여 Object 파일을 생성하고, 이들을 한 데 묶는 링크 과정을 통해 실행 파일인 app.out을 생성한다. main.c 파일은 foo.h, bar.h를 참조한다. Makefile을 사용하지 않고 불편하게 빌드하기 1. 컴파일 하기 -c 옵션은 소스파일(.c)로 Object파일(*.o) 생성하는 옵션이다. (링크를 하지 않고 컴파일만 한다) -o 옵션은 출력 파일의 이름을 지정하는 옵션이다. main.c 파일을 컴파일 하여 main.o 파일을 생성하고 마찬가지로 foo.o, bar.o를 생성한다. 2. 링크 및 실행 파일 생성하기 main.o, foo.o, bar.o 파일들을 묶는 링크 과정을 수행하고 실행 파일 app.ou

2023년 4월 27일
·
0개의 댓글
·

리눅스에서 C/C++ 컴파일 하기 (#1)

윈도우에서 C/C++ 컴파일 하기 윈도우에서는 C/C++ 파일을 컴파일 하기 위해 (대표적으로) Visual Studio를 사용한다. Visual Studio를 통해 프로젝트를 만들고 소스 코드를 컴파일 하는 과정은 아래와 같다. 프로젝트 유형(정적/동적 라이브러리, MFC, ...)을 선택하고 프로젝트를 생성한다. 프로젝트 속성을 통해 포함 디렉터리, 전처리기, 추가 종속성 등 각종 설정을 한다. 소스 코드를 작성한다. 빌드(컴파일) 버튼을 클릭한다. 크게 4단계 과정을 수행하면 자동으로 알아서 빌드를 해주고 결과물을 생성해 준다. 리눅스에서 C/C++ 컴파일 하기 리눅스 환경에서는 이러한 IDE를 사용할 수 없기 때문에 컴파일 및 빌드 과정이 윈도우 환경에 비해 약간 복잡하다. 리눅스에서는 위에서 나열된 1~4 과정들을 Visual Studio로 설정하는 것이 아닌 Makefile 이라는 것을 통해 '수동으로' 설정해야 한다.

2023년 4월 14일
·
0개의 댓글
·