Будет ли компиляция кода C / C ++ на Mingw гарантировать полную совместимость с GCC (на Linux и Mac) - PullRequest
4 голосов
/ 02 ноября 2010

Я хотел бы создать кросс-компилятор-совместимый код C ++.Я создал несколько «экзотический» код, который толкает язык C ++ в его серые, странные, загадочные области.

Учитывая, что мой код зависит только от boost и STL, проблема заключается в проверке совместимости кода, а не совместимость с lib:

Будет ли мой код, компилирующий msvc и Mingw, на 100% гарантировать, что мой код совместим с GCC на каждой платформе?

Ответы [ 3 ]

3 голосов
/ 02 ноября 2010

Совсем нет.

Компиляция вашего кода с помощью MSVC и MinGW гарантирует, что ваш код совместим с библиотеками Microsoft C / C ++. Я понимаю, что вы говорите только о совместимости кода, но такого не существует. Если вы толкаете C ++ в серые области, вполне возможно, что один и тот же код будет иметь разные результаты в зависимости от платформы, на которой вы его компилируете.

Лучший и единственный способ гарантировать полную совместимость - это компилировать и тестировать его на обеих платформах.

Хотя использование GCC с -std=c++0X -Wall -Wextra -pedantic (или любой другой версией STD) и избавление от всех предупреждений даст довольно хорошее представление о качестве кода.

0 голосов
/ 02 ноября 2010

Вы также можете попробовать скомпилировать с помощью cygwin, что даст лучшее представление о том, как он будет работать на более Unix-подобной системе (хотя это все еще не гарантирует работу на всех системах, но это лучше, чем просто пробовать msvc и MingW, которые оба компилятора Windows).

0 голосов
/ 02 ноября 2010

Честно? Гарантировать, что ваш код будет скомпилирован с GCC на любой платформе, невозможно. Всегда существует вероятность того, что что-то может быть не так, особенно если вы делаете «экзотические» вещи со своим кодом.

...