Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 470
#1

Turbo C++ реализовать для программы многоплатформенность - C++

28.09.2012, 07:47. Просмотров 633. Ответов 16
Метки нет (Все метки)

Всем доброго времени суток. У меня....наверное вам покажется довольно глупый вопрос, но тем не менее. Скажите пожалуйста, можно ли в винде, на IDE Turbo C++ реализовать для программы многоплатформенность, в частности, что бы она открывалась на linux, на macOS, на windows (требование к курсовой работе). Просто у меня сейчас проблемы с интернетом, и достать другую IDE у меня нету возможности, вот я и беспокоюсь, стоит ли мне суетиться по поводу того, что нужно искать другую IDE или это можно сделать в этой? Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 07:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Turbo C++ реализовать для программы многоплатформенность (C++):

Перевод программы с Turbo Pascal на С++ - C++
Помогите пожалуйста перевести с Turbo Pascal на С++!!!! Задачу и тексты надо переписывать!.

альтернатива Turbo Cи для Win 7 (x64) - C++
Всем привет. У меня такой вопрос: есть ли современная альтернатива Turbo С под Windows ? такая я же не большая по объему. Чтоб Visual C++...

Как реализовать регистрацию программы? - C++
Нужно чтобы программа просила регистраии, если её не пройти то она работает с ограничением. Подскажите как это лучше реализовать? До этого...

Где можно скачать Turbo C++, для Windows 7 64-разрядной - C++
где можно скачать Turbo C++, для windows 7 64-разрядной

Реализовать повтор программы по усмотрению пользователя - C++
сделать повтор программы по желанию пользователя #include <iostream> #include <stdio.h> #include <conio.h> #include <string.h> ...

Как реализовать циклическую работу программы - C++
Есть программа которая анализирует изображение и результаты дописывает в файл. Как сделать так, чтобы программа каждые 10 секунд проводила...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.09.2012, 08:16 #2
Это можно сделать в любой IDE. Нужно знать стандарт языка, не более. То есть просто не использовать нестандартные расширения IDE/компилятора, и учитывать различные поведения на различных платформах некоторых функций.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 08:28 #3
По-моему вопрос немного не о том.
У человека есть единственная IDE, и та под DOS. Он хочет на ней получить бинарник, запускающийся сразу на всех операционных системах.
Не получится :-)
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 470
28.09.2012, 08:39  [ТС] #4
Цитата Сообщение от Герц Посмотреть сообщение
По-моему вопрос немного не о том.
У человека есть единственная IDE, и та под DOS. Он хочет на ней получить бинарник, запускающийся сразу на всех операционных системах.
Не получится :-)
А как нужно тогда сделать? подскажите пожалуйста)
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
28.09.2012, 09:06 #5
Возможно ты не правильно понял задание. Кросспалтформенность обычно означает, что исходник без каких-либо изменений можно скомпилировать на любой ОС (это для языков, компилируемых в инструкции процессора, в Java например перекомпиляция под другую платформу не нужна).
А сделать исполняемый файл под разные платформы не возможно, потому что форматы файлов разные (в винде формат PE, а в линуксе ELF, в маке вообще приложение это папка, формат самого бинариника не знаю). Уточни задание, возможно Toshkarik уже ответил на твой вопрос.
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 470
28.09.2012, 09:15  [ТС] #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Возможно ты не правильно понял задание. Кросспалтформенность обычно означает, что исходник без каких-либо изменений можно скомпилировать на любой ОС (это для языков, компилируемых в инструкции процессора, в Java например перекомпиляция под другую платформу не нужна).
Я не неправильно понял задание, я не правильно его описал здесь, т.к. ввёл вас в зоблуждение))) вот мне нужно именно "скомпилировать на любой ОС", да. Т.е я без проблем могу написать код (со всеми правилами кросплатформенности) в turbo c++ который у меня на windows, потом этот же код взять и скомпилировать на другой ОС, например линукс и программа будет работать, я правильно понял?
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 09:58 #7
Зависит от того, что ты пишешь. Если ты там каким-нибудь боком используешь хедеры типа windows.h - не получится перекомпилировать на любой платформе без создания слоя абстракции.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
28.09.2012, 10:05 #8
Цитата Сообщение от skorik-1992 Посмотреть сообщение
Т.е я без проблем могу написать код (со всеми правилами кросплатформенности) в turbo c++ который у меня на windows, потом этот же код взять и скомпилировать на другой ОС, например линукс и программа будет работать, я правильно понял?
Вот тут небольшая засада. Дело в том, что Turbo C++ не актуальный компилятор, он не поддерживает текущего (или хотя бы предыдущего) стандарта С++. Т.е. "Hello World" на нем будет выглядет так:
C++
1
2
3
4
5
6
7
#include <iostream.h>
 
int main()
{
    cout << "Hello, World" << endl;
    return 0;
}
Такой код не скомпилируется в текущей версии G++ (компилятор под Linux и MacOS), нужно будет изменить его под новый стандарт (новый относительно Turbo C++, т.е. 2003г).
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Hello, World" << endl;
    return 0;
}
поэтому советую все же скачать актуальный компилятор С++.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 10:12 #9
G++ (компилятор под Linux и MacOS)
На маке используется LLVM бэкенд, от g++ там остался только фронтенд в виде парсера, и то не всегда, есть ведь еще clang, который продвигает Apple.
Kastaneda
28.09.2012, 12:40
  #10

Не по теме:

Цитата Сообщение от Герц Посмотреть сообщение
На маке используется LLVM бэкенд, от g++ там остался только фронтенд в виде парсера, и то не всегда, есть ведь еще clang, который продвигает Apple.
Возможно. Я под маком совсем мало работал и, насколько я помню, использовал gcc.

dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 470
28.09.2012, 12:58  [ТС] #11
Цитата Сообщение от Kastaneda Посмотреть сообщение
Вот тут небольшая засада. Дело в том, что Turbo C++ не актуальный компилятор, он не поддерживает текущего (или хотя бы предыдущего) стандарта С++. Т.е. "Hello World" на нем будет выглядет так:
C++
1
2
3
4
5
6
7
#include <iostream.h>
 
int main()
{
    cout << "Hello, World" << endl;
    return 0;
}
Такой код не скомпилируется в текущей версии G++ (компилятор под Linux и MacOS), нужно будет изменить его под новый стандарт (новый относительно Turbo C++, т.е. 2003г).
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Hello, World" << endl;
    return 0;
}
поэтому советую все же скачать актуальный компилятор С++.
Ох, я понял, спасибо вам большое. И на последок, не могли бы вы пожалуйста подсказать что-нибудь конкретное? Мне так же ещё необходимо установить линукс, может лучше для него уже искать среду разработки или разницы нету на какой ОС программировать для кросплатформенности?

И к слову, кстати вот если брать пример, который вы мне описали, то я пишу не #include <iostream.h>, а #include <iostream>, но если подключать библиотеку cmatch, то приходится писать <match.h>, а это я так понимаю старый стандарт.
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 13:05 #12
А есть причины, по которой тебе нужна какая-то среда? Ведь основное что нужно тебе - это компилятор.
Под Windows - MinGW я бы скачал, под никсы и макось - gcc/clang.
В качестве среды на трех платформах (Win, Linux, MacOS) использую Sublime Text 2 :-)
И к слову, кстати вот если брать пример, который вы мне описали, то я пишу не #include <iostream.h>, а #include <iostream>, но если подключать библиотеку cmatch, то приходится писать <match.h>, а это я так понимаю старый стандарт.
Не могу сказать в каком именно стандарте, но все C-заголовочный файлы <header.h> были перенесены в соответствующие <cheader> с внесением всего содержимого в пространство имен std. Так что cmath это просто обертка над math.h, внутри cmath подключается math.h и совершаются еще некоторые телодвижения.
В современных компиляторах можно подключать и cmath, и math.h, но первый предпочтительнее.
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 470
28.09.2012, 13:20  [ТС] #13
Цитата Сообщение от Герц Посмотреть сообщение
А есть причины, по которой тебе нужна какая-то среда?
Да, есть. Мне нужно реализовать так же графический интерфейс для программы.
Блин, я наверное много глупых вопросов задаю, просто я только перевёлся в другой универ, а тут программирование проходят на c/c++, а я до этого работал только в pascal и delphi и соответствено реализовывал GUI только в IDE, по другому не умею. А нам, сразу же, на первой паре программирования сказали о том, что будет курсовой проект, и требования к нему - многоплатформенность и GUI, вот я и пытаюсь сейчас разобраться на чем мне работать, чтобы всё это реализовать.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
28.09.2012, 13:42 #14
Цитата Сообщение от skorik-1992 Посмотреть сообщение
многоплатформенность и GUI
Это требования для одной программы? Потому что для GUI придется использовать что-нибудь типа Qt.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.09.2012, 14:15 #15
Цитата Сообщение от skorik-1992 Посмотреть сообщение
ещё необходимо установить линукс, может лучше для него уже искать среду разработки или разницы нету на какой ОС программировать для кросплатформенности?
Програмировать где без разницы, а компилировать и проверять в работе прийдётся. Есть
дистрибутивы линукс в которых уже есть IDE. Например, в ALT Linux 6.0.1 Desktop их аж четыре: Qt Creator, Code::Blocks, Eclipse, KDevelop. Не совсем понятно, только, как вы собираетесь делать кросплатформенный GUI средствами чистого С++. Код переносимый можно сделать, а вот GUI кросплатформенный... Для этого нужно что-то типа Qt, wxWidgets.

Добавлено через 13 минут
Цитата Сообщение от skorik-1992 Посмотреть сообщение
А нам, сразу же, на первой паре программирования сказали о том, что будет курсовой проект, и требования к нему - многоплатформенность и GUI,
А какими средствами не уточнили? На выбор? Тогда Qt.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2012, 14:15
Привет! Вот еще темы с ответами:

Доработка программы: реализовать возможность работы с шестнадцатеричными числами - C++
здравствуйте! прошу помощи в доработке программы. нужно что бы она могла работать с шестнадцатеричными числами а не только с десятичными...

Составить блок схему для программы упорядочивания чисел в массиве(код программы прилагается) - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { int N = 0; // N - количество элементов в массиве...

Программы на Turbo Pascal - Turbo Pascal
ПРивет ребят! выручайте, нужно составить парочку программ на паскале, зарание спасибо! 1 программа ( определить сумму чисел 3-6-9..99) ...

Реализовать класс для матриц. В этом классе реализовать интерфейс, содержащий методы для выполнения операций - C#
Реализовать класс для матриц. В этом классе реализовать интерфейс, содержащий методы для выполнения следующих операций: - сложение -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.09.2012, 14:15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru