LINUX.ORG.RU

компиляция в Code::Blocks программ для i386 из под 64х процессора


1

1

Здравствуйте.
Извиняюсь за очень глупый вопрос, но не нашел в сети ответа:
Нужно компилировать программу для 32 битного процессора, а сам я работаю на 64 битном. Как настроить Code::Blocks так чтобы он это делал? Я отмечал пункт «i386» в меню Project->Build Options (к команде g++ добавляется опция -march=i386), но при сборке мне выдается ошибка: «заданный процессор не поддерживает набор команд x86-64». На 32 битной машине этот проект компилируется без проблем.
Очень не хочется из-за такой ерунды с виртуальной машиной заморачиваться.
Заранее спасибо!

-m32 эту опцию зовут

anonymous
()
Ответ на: комментарий от imb

Добавил опцию -m32. Теперь формируемые code::blocks вызовы g++ имеют вид:

g++ -Wall -fexceptions  -g -m32     -c File1.cpp -o File1.o
и так к каждому .cpp файлу. Компилируется без проблем.
Но линковщик к каждому объектному файлу выдает ошибку:
/usr/bin/ld: i386 architecture of input file `File1.o' is incompatible with i386:x86-64 output

just_a_student
() автор топика
Ответ на: комментарий от anonymous

Теперь все заканчивается такой ошибкой:

g++  -o File1.o File2.o....FileN.o   -m32  /usr/lib/libboost_thread.so.1.49.0 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++ 
Библиотека stdc++ устанавливаться отказывается из-за неразрешимых зависимостей. Как тут быть?

just_a_student
() автор топика
Ответ на: комментарий от anonymous

c stdc++ проблему решил, но он стал жаловаться на то что нужна библиотека Boost::thread для 32х. Плюнул на все и поставил Virtual Box

just_a_student
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.