방금 MSYS2/MINGW64에서 소스를 컴파일하여 교차 gdb를 컴파일했습니다. 하지만 gdb를 실행하면 오류가 발생하고 libexpat-1.dll
이 필요하기 때문에 시작할 수 없다는 불만이 있습니다. Cross gdb에 libexpat-1.dll이 필요한 이유는 무엇입니까?
이
내가 GDB를 컴파일 한 것입니다 :export TARGET=x86_64-amd-linux-gnu
export PREFIX=/tmp/myToolChain
binutils/gdb/path/configure --with-python=/mingw64/bin/python --target=${TARGET} --prefix=${PREFIX} --disable-shared --enable-static
: 다른 디렉토리에서 소스 코드git clone git://sourceware.org/git/binutils-gdb.git
있어
및
그것은 아무 문제없이 컴파일 make && make install
. 하지만 필자는 정적으로 컴파일하고 공유 라이브러리를 비활성화하는 동안 라이브러리가 필요한 이유를 알지 못합니다.
나는 또한 컴파일하는 동안 libexpat
을 사용하지 않으려 고했지만 다른 라이브러리 libiconv-2.dll
에 관해서 말하고있다.
나는 무엇을 엉망으로 만들었습니까?
편집 : 내 경로에 C:\msys64\mingw64\bin
이 없습니다. 그것을 추가 한 후에 더 이상 이전 오류가 발생하지 않습니다.
그러나 나는 아직도 라이브러리를 정적으로 링크하고 있지만 왜 최종 바이너리에는 여전히 라이브러리가 필요합니까?
MSYS2는 MSYS2 셸, MinGW-w64 Win64 셸 및 MinGW-w64 Win32 셸의 세 가지 셸 환경을 가지고 있습니다. 어느 쪽을 사용하고 있습니까? (즉'echo $ MSYSTEM'의 값은 무엇입니까?) gdb를 정확히 실행하는 방법과보고있는 정확한 오류 메시지는 무엇입니까? –
나는 MINGW-W64 Win64 셸에서 모든 것을 만들었습니다. '$ echo $ MSYSTEM' 은'MINGW64'를 반환합니다. 디렉토리에서 CMD 창을 열고'x86_64-amd-linux-gnu-gdb.exe --version'을 실행합니다. 오류는'컴퓨터에 libexpat-1.dll이 없기 때문에 프로그램을 시작할 수 없습니다. 이 문제를 해결하기 위해 프로그램을 다시 설치하십시오 .' – Ali