Правильный способ принудительной 32-битной компиляции с использованием CMake

Извините, что есть много похожих вопросов, но я обнаружил, что поиск в Google для запросов CMake всегда дает похожие, но не одинаковые сценарии, конфликтующие команды CMake и так далее!

Мне нужно заставить мой проект строить 32-битные двоичные файлы, потому что мне нужно связать с библиотекой, которая доступна только как 32-битная. Я диагностировал это на основании таких сообщений об ошибках, как:

/usr/bin/ld: i386 architecture of input file `*external-32bit-lib*' is incompatible with i386:x86-64 output

Исходя из того, что я понял, я должен использовать:

set (CMAKE_CXX_FLAGS "-m32")

Это действительно меняет ситуацию - теперь я получаю несколько ошибок, например:

/usr/bin/ld: i386 architecture of input file `*project-output-lib*' is incompatible with i386:x86-64 output

И все еще получаю те же ошибки для внешней библиотеки. Я думаю это потому, что -m32 заставил gcc генерировать 32-битные двоичные файлы, но ld все еще пытается получить 64-битный вывод? Дальнейшие поиски в Google для этой проблемы не увенчались успехом, поэтому, если кто-нибудь сможет проверить, что я прав, и указать правильный способ решения этой проблемы, я был бы очень благодарен!

Большое спасибо!

49
задан devrobf 27 April 2011 в 03:38
поделиться