1
Travis에서 32 비트 바이너리를 컴파일하려고합니다. 편집이 제대로 작동하는 것 같지만 -m32
은 32 비트 모드로 컴파일되지 않는 것 같습니다. 연결이 올바르게 수행되지 않았기 때문입니다. 컴파일Ubuntu Trusty를 사용하여 Travis에서 32 비트 바이너리 컴파일
명령 : 연결하기위한
gcc -m32 -DUNIX -DPD -I "/usr/include/pd" -fpic -DVERSION='"1.4.1"' \
-I"src/uthash/src" -std=c99 -Wall -Wextra -Wshadow -Winline \
-Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer \
-march=pentium4 -mfpmath=sse -msse -msse2 \
-o src/json-encode.o -c src/json-encode.c
명령 :
gcc -m32 -rdynamic -shared -fpic \
-Wl,-rpath,"\$ORIGIN",--enable-new-dtags -L "/usr/libx32" \
-L "/libx32" -o json-encode.pd_linux src/json-encode.o -lc \
-lm -lcurl -ljson-c -loauth
를하지만 컴파일 때문에 메시지의 32 비트 모드에서 수행하지 않은 다음과 같습니다
/usr/bin/ld: skipping incompatible /usr/libx32/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/libx32/libc.a when searching for -lc
컴파일하기 전에 환경은 다음과 같이 설정됩니다.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get -y install puredata-dev libjson-c-dev libcurl4-nss-dev liboauth-dev \
puredata-core:i386 libjson-c2:i386 libcurl3-nss:i386 liboauth0:i386 \
libc6-dev-i386 gcc-multilib
누락 된 패키지 또는 gcc 옵션이 있습니까?
전체 로그
는 https://travis-ci.org/residuum/PuRestJson/jobs/179125198
지금은'debootstrap'과'chroot'에 의지했습니다 : - / – Residuum