Tôi có phiên bản 64-bit của llvm-gcc, nhưng tôi muốn có thể tạo cả hai tệp nhị phân 32 bit và 64 bit. Có một lá cờ cho điều này? Tôi đã thử qua -m32 (hoạt động trên gcc thông thường), nhưng tôi nhận được thông báo lỗi như sau:Xây dựng 32 bit với 64-bit llvm-gcc
[[email protected]]$ llvm-gcc -m32 test.c -o test
Warning: Generation of 64-bit code for a 32-bit processor requested.
Warning: 64-bit processors all have at least SSE2.
/tmp/cchzYo9t.s: Assembler messages:
/tmp/cchzYo9t.s:8: Error: bad register name `%rbp'
/tmp/cchzYo9t.s:9: Error: bad register name `%rsp'
...
Đây là số lùi; Tôi muốn tạo mã 32 bit cho bộ xử lý 64 bit!
Tôi đang chạy llvm-gcc 4.2, phiên bản đi kèm với Ubuntu 9.04 x86-64.
EDIT: Dưới đây là phần có liên quan của đầu ra khi tôi chạy llvm-gcc với cờ -v:
[[email protected]]$ llvm-gcc -v -m32 test.c -o test.bc
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../llvm-gcc4.2-2.2.source/configure --host=x86_64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr/lib/llvm/gcc-4.2 --enable-languages=c,c++ --program-prefix=llvm- --enable-llvm=/usr/lib/llvm --enable-threads --disable-nls --disable-shared --disable-multilib --disable-bootstrap
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5546) (LLVM build)
/usr/lib/llvm/gcc-4.2/libexec/gcc/x86_64-linux-gnu/4.2.1/cc1 -quiet -v -imultilib . test.c -quiet -dumpbase test.c -m32 -mtune=generic -auxbase test -version -o /tmp/ccw6TZY6.s
tôi nhìn vào/usr/lib/llvm/gcc- 4.2/libexec/gcc hy vọng tìm được một tệp nhị phân khác, nhưng thư mục duy nhất có x86_64-linux-gnu. Tôi có lẽ sẽ xem xét biên dịch llvm-gcc từ nguồn với các tùy chọn thích hợp tiếp theo.
Thông báo lỗi bạn nhận được thực sự là lạ; bạn có thể biên dịch với -v và đăng danh sách đối số đầy đủ mà llvm-gcc thực sự đang sử dụng không? –
Cập nhật với đầu ra tiết. –