System: hostname = challenger uname -m = x86_64 uname -r = 2.6.9-67.ELxenU uname -s = Linux uname -v = #1 SMP Wed Nov 7 14:17:17 EST 2007 /bin/arch = x86_64 For example: libx264.a built as 32 bit Testit.c extern int x264_encoder_open(); int main(void){ x264_encoder_open(); } /home/users/tovrea/local/linux/bin/gcc -m32 -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -I/home/users/tovrea/local/linux/32/include -std=c99 -fomit-frame-pointer -pthread -c -o testit.o testit.c Works ok. but /home/users/tovrea/local/linux/bin/gcc -L/home/users/tovrea/local/linux/32/lib -L/home/users/tovrea/local/linux/lib/gcc/x86_64-unknown-linux-gnu/4.4.0 -L/home/users/tovrea/local/linux/lib/gcc/x86_64-unknown-linux-gnu/lib64 -o testit testit.o -lz -lbz2 -pthread -lm -lx264 -lm /usr/bin/ld: skipping incompatible /home/users/tovrea/local/linux/32/lib/libx264.a when searching for -lx264 /usr/bin/ld: cannot find -lx264 And tovrea@challenger%/home/users/tovrea/local/linux/bin/gcc -m32 -L/home/users/tovrea/local/linux/32/lib -L/home/users/tovrea/local/linux/lib/gcc/x86_64-unknown-linux-gnu/4.4.0 -L/home/users/tovrea/local/linux/lib/gcc/x86_64-unknown-linux-gnu/lib64 -o testit testit.o -lz -lbz2 -pthread -lm -lx264 -lm /usr/bin/ld: skipping incompatible /usr/lib64/libbz2.so when searching for -lbz2 /usr/bin/ld: skipping incompatible /usr/lib64/libbz2.a when searching for -lbz2 /usr/bin/ld: cannot find -lbz2 collect2: ld returned 1 exit status What am I doing wrong here? I don't see it. I would expect if I select m32 that gcc would select /usr/lib (32 bit libs) rather than /usr/lib64. Bill Tovrea BAE Systems 16550 West Bernardo Drive San Diego, CA 92127 Telephone: (858) 592-5292 Pager: (888) 971-4964 E-mail: George.Tovrea@xxxxxxxxxxxxxx