Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Разработка консольного приложения.  (Прочитано 14564 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #30 : 24 Июня 2013, 18:47:54 »
neatek,
Можно начать с этого http://www.rsdn.ru/article/unix/sockets.xml или найти другое.
Компилировать можно и из консоли или использовать ссылки предыдущего сообщения
Извините, я все еще учусь

Оффлайн neatek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #31 : 24 Июня 2013, 21:12:02 »
neatek, какая версия Ubuntu Server у Вас установлена? Компилятор однозначно gcc (C) и g++ (C++).
sudo apt-get install gcc g++Будете работать в GUI?
Если да, тогда рекомендую Code::Blocks, Anjuta, Geany, KDevelop, QtCreator, Netbeans, Eclipse, CodeLite именно в том порядке, в котором написал.
Хорошо, как поставлю Ubuntu у себя дома, попробую именно в вашем порядке все подряд. Спасибо!)

neatek,
Можно начать с этого http://www.rsdn.ru/article/unix/sockets.xml или найти другое.
Компилировать можно и из консоли или использовать ссылки предыдущего сообщения
Спасибо за ссылку, полезная информация.

Итак, на данный момент мне осталось подключить другой жесткий диск, который завалялся у меня с Ubuntu, и поставить посоветованные IDE, и попробовать что-то сделать, чем сейчас или в ближайшее время займусь. Спасибо всем кто принял активное участие. Если возникнут еще какие-либо вопросы, я обязательно обращусь.

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #32 : 25 Июня 2013, 12:43:01 »
QtCreator - заточен под Qt
Недостатки: очень узкий профиль (Qt), писать с чем то другим делается не очень комфортно. В Ubuntu 13.04 сломали шрифты.
Неправда, не заточен на Qt. Поломки шрифтов также не наблюдаю.

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #33 : 25 Июня 2013, 12:52:27 »
quiet_readonly,
И в чем же неправда? Вот загрузил его - и все про qt (хелп откройте).
Другое дело, что на нем можно и без qt программы делать...
Извините, я все еще учусь

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #34 : 25 Июня 2013, 13:49:57 »
Я неправильно сформулировал, имел ввиду что интеграция с Qt никак не мешает работать с кодом, не использующим Qt. Хотя без clang code model могут быть ограничения, например, встроенная поддержка Objective-C практически не улучшается и безнадёжно устарела.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #35 : 25 Июня 2013, 13:56:31 »
quiet_readonly, значит Вам повезло. В XFCE у всех Qt5 программ шрифты поломанные. Даже где-то баг на Launchpad есть. А QtCreator на Qt заточен, или предложите мне вменяемый способ компиляции HelloWorld на WxWidgets в QtCreator, а именно куда прописать `wx-config --libs` `wx-config --cxxflags`. Вот такой код, прекрасно компилируется из консоли командой
g++ hworld.cpp `wx-config --libs` `wx-config --cxxflags` -o hworldА вот и код HelloWorld
Код: (cpp) [Выделить]
// hworld.cpp
// Version using dynamic event routing

#include <wx/wx.h>

class MyApp : public wxApp
{
    virtual bool OnInit();
};

IMPLEMENT_APP(MyApp)


class MyFrame : public wxFrame
{
public:
    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
    void OnQuit(wxCommandEvent& event);
    void OnAbout(wxCommandEvent& event);
};

enum
{
    ID_Quit=1,
    ID_About
};


bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame( _("Hello World"), wxPoint(50, 50),
                                  wxSize(450, 350));

    frame->Connect( ID_Quit, wxEVT_COMMAND_MENU_SELECTED,
                    (wxObjectEventFunction) &MyFrame::OnQuit );
    frame->Connect( ID_About, wxEVT_COMMAND_MENU_SELECTED,
                    (wxObjectEventFunction) &MyFrame::OnAbout );

    frame->Show(true);
    SetTopWindow(frame);
    return true;
}

MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
    : wxFrame( NULL, -1, title, pos, size )
{
    wxMenuBar *menuBar = new wxMenuBar;

    wxMenu *menuFile = new wxMenu;

    menuFile->Append( ID_About, _("&About...") );
    menuFile->AppendSeparator();
    menuFile->Append( ID_Quit, _("E&xit") );

    menuBar->Append(menuFile, _("&File") );

    SetMenuBar(menuBar);

    CreateStatusBar();
       
    SetStatusText( _("Welcome to wxWidgets!") );
}

void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
    Close(true);
}

void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
    wxMessageBox( _("wxWidgets Hello World example."),
                  _("About Hello World"),
                  wxOK|wxICON_INFORMATION, this );
}
В других IDE всё нативно.

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #36 : 25 Июня 2013, 14:23:56 »
Первое в QMAKE_LDFLAGS, второе в QMAKE_CXXFLAGS, самый обычный qmake. "В других IDE всё нативно" - это, видимо, про Code::Blocks, потому что в остальных не так. Ну и выдавать запуск компилятора из консоли за нечто великое -- это даже не смешно, тогда уж можно и в QtCreator компилировать проект, используя generic project и единственный шаг сборки с командой `wx-config --libs` `wx-config --cxxflags`.

P.S. Кстати, WxWidgets с собственным wx-config - это далеко не чистый C++. И если вы берётесь использовать библиотеки, имеющие дополнительные утилиты, и при этом не гуглите, как в настройках проекта среды подключить эти утилиты - вы реально странный человек.
« Последнее редактирование: 25 Июня 2013, 14:25:32 от quiet_readonly »

Оффлайн Кровавый

  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #37 : 25 Июня 2013, 14:33:10 »
А вот и код HelloWorld


(Нажмите, чтобы показать/скрыть)
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #38 : 25 Июня 2013, 15:03:27 »
quiet_readonly, гуглил и хорошо, но ничего путного не нашел. Спасибо за подсказку, так как QtCreator нравится. Пока остановился на Code::Blocks. То, что WxWidgets не чистый C++ знаю и сам. Как и Qt с Qmake и слотами тоже не чистый C++. Чистый GUI на C++ это gtkmm, но то обёртка, так что тоже не то.
Кровавый, это пример из официальной документации. Вроде всё просто. Хотя сама библиотека имеет проблемы, например в попытке перехватить буфер и при защите от ввода (на кириллицу не реагирует, приходится изобретать велосипеды). Hello World довольно солидный, т.е. не просто окошко с надписью HelloWorld, а со строкой меню, всплывающим окном, кнопкой выхода и строкой статуса. Но да, тот же gtkmm удобнее на первый взгляд, но GTK3 на винду не портирован, а это очень не хорошо. Только старый GTK2.

Оффлайн _XDD_

  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #39 : 26 Июня 2013, 02:39:25 »
neatek,
если вы пишите на C++ и знаете стандарт его, то можно писать и на windows, а потом просто исходники компилировать под linux(обычно делаю в обратном порядке), но сокеты к этому как то не вяжутся.

Опять же если вы уже будете использовать Qt а не C++, к примеру, не подключая ничего лишнего чтобы привязать к платформе, то сможете писать и тестить на win и переносить путем перекомпиляции исходника(и с сокетами просто работать, намного больше возможностей и проще чем из sys/socket.h).

но если вы только начинаете изучать C++ лучше ставить полноценный дистрибутив, какую нить IDE (для C++ советую Qt Creator 2.8, потом сможете и под win работать на нем) - это не даст вам использовать всякие conio.h в процессе изучения.

Оффлайн neatek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #40 : 26 Июня 2013, 03:08:12 »
neatek,
если вы пишите на C++ и знаете стандарт его, то можно писать и на windows, а потом просто исходники компилировать под linux(обычно делаю в обратном порядке), но сокеты к этому как то не вяжутся.

Опять же если вы уже будете использовать Qt а не C++, к примеру, не подключая ничего лишнего чтобы привязать к платформе, то сможете писать и тестить на win и переносить путем перекомпиляции исходника(и с сокетами просто работать, намного больше возможностей и проще чем из sys/socket.h).

но если вы только начинаете изучать C++ лучше ставить полноценный дистрибутив, какую нить IDE (для C++ советую Qt Creator 2.8, потом сможете и под win работать на нем) - это не даст вам использовать всякие conio.h в процессе изучения.
Да вот я уже сижу на ubuntu... поставил на второй жесткий.
Сейчас буду CodeBlocks ставить и другие IDE, и смотреть что к чему и как.
Насчет Qt, у них там собственные функции, которые мне кажутся не очень удобны в написании.
Думаю на чистом C++ начать что-то делать.

Оффлайн _XDD_

  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #41 : 26 Июня 2013, 04:50:12 »
neatek,
на чистом C++ вродь как нету сокетов.
или из win брать свои ф-и для сокетов или из unix свои.

потом изучив на unix сокеты гляньте реализацию на Qt маленького сервера принимающего строки произвольной длинны))

к примеру переслать сообщение в 4.8к символов))

Оффлайн boka

  • Участник
  • *
  • Сообщений: 215
  • Каждому своё.
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #42 : 26 Июня 2013, 11:59:02 »

Цитата: _XDD_
на чистом C++ вродь как нету сокетов.
#include<sys/socket.h>
из C?
Не хочешь - не надо.

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #43 : 26 Июня 2013, 12:19:01 »

Цитата: _XDD_
на чистом C++ вродь как нету сокетов.
#include<sys/socket.h>
из C?
Из POSIX.

Оффлайн neatek

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: Разработка консольного приложения.
« Ответ #44 : 28 Июня 2013, 00:54:52 »

Цитата: _XDD_
на чистом C++ вродь как нету сокетов.
#include<sys/socket.h>
из C?
Да. Сейчас пользуюсь Ubuntu 12.10 + Codeblocks из центра приложений.

Кто имел опыт с сокетами? Посоветуйте литературу unix sockets...
и каким методом лучше реализовывать их?

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.