나는 독점적인 32비트 라이브러리가 필요하고 64비트 데비안(jessie, amd64)에서 실행되어야 하는 C++ 프로그램을 개발하려고 생각 중입니다. 32비트 라이브러리를 사용하려면 32비트 실행 파일을 만들어야 한다고 가정합니다(또는 64비트 실행 파일에서 라이브러리를 사용할 수 있는 방법이 있습니까?)
64비트 Debian에서 프로그램을 어떻게 빌드하나요? 아니면 32비트 Debian 시스템을 사용하여 빌드한 다음 64비트 Debian으로 이동해야 합니까?
저는 보통 cmake를 사용하는데, 차이가 있다면 말이죠.
답변1
예, 32비트 라이브러리를 사용하려면 32비트 바이너리를 생성해야 합니다.
amd64의 Debian 8에서는 다음을 사용하여 32비트 바이너리를 빌드할 수 있습니다.gcc-multilib
(C의 경우) 또는g++-multilib
(C++의 경우) 및 GCC -m32
옵션.
CMake를 사용하면 플래그를 추가하는 것만으로도 충분하다고 생각합니다 -m32
. 단일 프로젝트에서 32비트 및 64비트 빌드용 CMake를 설정할 수 있지만 이는 매우 복잡합니다.rr
~의CMakeLists.txt
자세한 예.
도착하다달리기32비트 바이너리의 경우 i386에 대한 다중 아키텍처 지원을 활성화해야 합니다.
sudo dpkg --add-architecture i386
sudo apt-get update
libc6:i386
그런 다음 및 로 시작하여 적절한 라이브러리를 설치합니다 libstdc++6:i386
.