2010-01-21 5 views
1

간단한 C++ 프로그램을 컴파일하여 ESXi 3.5 콘솔 창에서 실행하려고합니다. 그것은 잘못된 라이브러리와 연결하고있는 것 같습니다 ... 어딘가에 설명 된 설치가 있습니까? G ++ 및 라이브러리의 버전을 그렇게 사용하려면 어떻게해야합니까?ESXi 3.5에서 실행할 C++ 코드를 컴파일하십시오.

답변

1

다음은 문제를 해결 한 방법입니다. 나는 컴파일하려면 다음 않았다

  1. ESXi를-3.5-lib 디렉토리 하위 폴더로 의존성으로 나타났다 실행
  2. 복사 된 모든 라이브러리에 우분투에서

  3. 란의 LDD를 GCC를 사용하여 컴파일. 내 경우에는 그들이 있었다 :

    ld-linux.so.2 
    libc.so.6 
    libgcc_s.so.1 
    libm.so.6 
    libstdc++.so.5 
    
  4. 추가는 GCC에 스위치를 다음

    • -nodefaultlibs 일부 CRT에
    • -lc (방지 링크 오류 (기본 libs와 함께 링크를 시도하지에) 라이브러리)
    • -fno 스택 보호기가 (다른 오류, 다른 함수) 누락을 방지 하였다
  5. 0

g++ file1.cpp file2.cpp file3.cpp -o output-biinary-file-name \ 
    ESXi-3.5-lib/ld-linux.so.2 ESXi-3.5-lib/libc.so.6 ESXi-3.5-lib/libgcc_s.so.1\ 
    ESXi-3.5-lib/libm.so.6 ESXi-3.5-lib/libstdc++.so.5 \ 
    -nodefaultlibs -lc -m32 -fno-stack-protector 
:

다음은 내 최종 빌드 명령했다

관련 문제