libstdc ++ 64-битная и 32-битная версия на одной машине - PullRequest
6 голосов
/ 11 февраля 2009

Я пытаюсь выполнить кросс-компиляцию версии моего программного обеспечения для 64-битной платформы. Могу ли я установить 32-битную и 64-битную версию libstdc ++ на одной и той же машине, не беспокоясь о том, чтобы прервать установку Linux. ОС является 32-битной Ubuntu.

Я раньше не кросс-компилировал и просто хотел проверить, если я установлю свои CFLAGS и LDFLAGS для соответствующего процессора я должен быть в порядке, когда у меня установлены правильные версии libstdc ++.

Я проверил 64-битную версию Ubuntu, однако здесь есть символическая ссылка

lib64 -> lib

это может сильно испортить ситуацию, если дело обстоит так на 32-битной машине, и кто-нибудь знает, как это отсортировать?

Я сейчас получаю следующую ошибку

 [exec] /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.2.4/libstdc++.so
 [exec] /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.2.4/libstdc++.a
 when searching for -lstdc++ [exec] /usr/bin/ld: skipping incompatible

и т. Д. До

 [exec] /usr/bin/ld: cannot find -lstdc++
 [exec] collect2: ld returned 1 exit status

Что, по-видимому, связано с тем, что у меня нет 64-битной версии libstdc ++

1 Ответ

4 голосов
/ 11 февраля 2009

Конечно, вы можете.

Просто поместите их в /usr/lib и /usr/lib64 соответственно.

Не могу проверить это на Ubuntu, но на Fedora они попадают прямо из пакетов:

[~#] repoquery -q -l libstdc++.i386
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.10

[~#] repoquery -q -l libstdc++.x86_64
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.10
...