1. 64 bit 장비에서 32 bit library build 가능
2. 64 bit 장비에서 32 bit 로 빌드 시에, 32 bit library link 가능
3. 64 bit 장비에서 64 bit 로 빌드 시에, 32 bit library link 안됨
4. 64 bit binary 에서 32 bit dynamic library load 안됨
여기서 64 bit 라고 함은, intel, amd 의 x86_64 환경을 의미합니다.
그리고, 결론적으로 x86_64 OS 상에서, 32bit 로 구동 또는 빌드를 하면 32 bit library 를 사용할 수 있다 입니다.
2. 대안이 없다면, 해당 라이브러리 관련코드만 별도 프로그램으로 분리하여 32비트 빌드하고 64비트 메인프로그램과 데이터를 주고받을 방법을 찾습니다. 별도의 프로그램 두 개가 실행되는 상태이므로 일반적인 IPC를 하면 됩니다. 소켓을 써도 되고 공유메모리를 써도 되고.. 등등입니다. 동시실행이 아닌 순차실행 관계라면 선프로그램이 데이터파일로 떨구고 후프로그램이 읽어들여도 되겠습니다.
질문에 애매합니다.
1. 64 bit 장비에서 32 bit library build 가능
2. 64 bit 장비에서 32 bit 로 빌드 시에, 32 bit library link 가능
3. 64 bit 장비에서 64 bit 로 빌드 시에, 32 bit library link 안됨
4. 64 bit binary 에서 32 bit dynamic library load 안됨
여기서 64 bit 라고 함은, intel, amd 의 x86_64 환경을 의미합니다.
그리고, 결론적으로 x86_64 OS 상에서, 32bit 로 구동 또는 빌드를 하면 32 bit library 를 사용할 수 있다 입니다.
답변감사드립니다
다른 라이브러리 들은 -q64 옵션을 사용해서 64비트 용으로 재컴파일 햇는데 .a파일만 가지고 있을 경우에는 어떻게 처리하시는지 궁금합니다
64비트 빌드를 꼭 해야할 상황이라면 아래의 방법
64비트 빌드를 꼭 해야할 상황이라면 아래의 방법 정도가 떠오릅니다.
1. 대안 라이브러리가 있거나 새로 구현 가능하면 교체하고 전체를 64비트 빌드합니다.
2. 대안이 없다면, 해당 라이브러리 관련코드만 별도 프로그램으로 분리하여 32비트 빌드하고 64비트 메인프로그램과 데이터를 주고받을 방법을 찾습니다. 별도의 프로그램 두 개가 실행되는 상태이므로 일반적인 IPC를 하면 됩니다. 소켓을 써도 되고 공유메모리를 써도 되고.. 등등입니다. 동시실행이 아닌 순차실행 관계라면 선프로그램이 데이터파일로 떨구고 후프로그램이 읽어들여도 되겠습니다.
답변 감사드립니다.
말씀해주신 방법대로 해봐야겟네요
댓글 달기