Как я могу настроить свой проект для генерирования независимого от платформы кода? - PullRequest
3 голосов
/ 15 июня 2009

Я пишу приложение, для которого я хотел бы выпустить двоичные файлы для Mac, Windows и Linux. У меня есть код, который компилируется под Mac и Linux, но под Windows это не так.

Это из-за отсутствия в Windows strcasecmp. Я прочитал немного о том, как я могу создать какой-то заголовок, чтобы обернуть мой код, но я не очень хорошо понимаю эту концепцию. Я работал над кодом на моем Mac, используя только vim и make, но сейчас я пытаюсь переключить все это на Visual Studio.

Есть ли какой-нибудь способ, которым я могу настроить свой проект так, чтобы он включал заголовки-оболочки Windows при сборке под Windows, но не включал их при сборке на моем компьютере Mac или Linux?

Эта проблема действительно вызывает у меня головную боль, и я буду признателен за любые предложения!

Ответы [ 4 ]

7 голосов
/ 15 июня 2009

Вы могли бы сделать

#ifdef WIN32
#include <windows_specific_header.h>
#else
#include <other_header.h>

Существует также макрос для MS Visual Studio: _MSC_VER, поэтому

#ifdef _MSC_VER

также будет работать здесь.

Существует также определение WINVER в windows.h.

1 голос
/ 15 июня 2009

Boost библиотеки предназначены для кроссплатформенности. В частности, если вам нужно манипулировать строками, вы, вероятно, найдете то, что вам нужно. И он будет кроссплатформенным, без необходимости разбираться с ним. См. там , чтобы получить представление о том, что доступно.

1 голос
/ 15 июня 2009

настроить мой проект для генерации независимого от платформы кода

Это немного странная фаза, поэтому я не уверен, что задаю правильный вопрос, но здесь идет речь:

Вы должны написать независимый от платформы код.

Выполните одно из следующих действий:

  • Запись в кроссплатформенный фреймворк (т.е. QT)
  • Используйте только те библиотечные функции, которые доступны для всех ваших целей

или

  • предоставляет оболочки для заполнения любых пробелов в библиотеке для (или более) целей
0 голосов
/ 15 июня 2009

возможно, вы можете подумать о компиляции кода с помощью MINGW32 в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...