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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Не подключаются библиотеки с++  (Прочитано 4523 раз)

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

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #15 : 15 Марта 2010, 07:59:21 »
user@laptop:~/tmp$ cat hello.cxx   # Вывожу содержимое файла hello.cxx
#include <iostream>

using namespace std;

int main()
{
    int n;
    cout << "Угадай чилсо: ";
    cin >> n;
    if (n == 7)
   cout << "Молодец, угалал!";
    else
   cout << "Не, неправильно!";
    cout << endl;
}
user@laptop:~/tmp$ g++ hello.cxx -o hello      # Запусаю компилятор из GCC с именем входного файла "hello.cxx" и с именем выходного бинарника "hello"
user@laptop:~/tmp$ ./hello          # Запускаю этот бинарник из текущего каталога.
Угадай чилсо: 7
Молодец, угалал!

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #16 : 15 Марта 2010, 12:01:17 »
Цитировать
А можно конкретный пример, пожалуйста? Чтобы небыло проблем с компиляцией, как в том же KDevelop (KDevelop даже никаких ошибок не выводит, я нажимаю на кнопку "Execute", и все, просто ничего не происходит.
KDevelop расчитан на людей грамотных, чётко знающих что они хотят и занимающихся разработкой достаточно крупных приложений. При том, что это моя основная IDE при работе с C++ для простых тестов в 1-2 файла я его не использую, ибо тут он неудобен и избыточен. Лучше поставь Qt-Creator в нём таких проблем скорей всего не будет.

Но только лучше сначала научись самостоятельно компилировать программы в консоли и писать простые Makefile'ы. После этого ты сможешь работать за любой IDE.
« Последнее редактирование: 15 Марта 2010, 12:02:52 от VestniK »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #17 : 15 Марта 2010, 12:24:53 »
Но только лучше сначала научись самостоятельно компилировать программы в консоли и писать простые Makefile'ы. После этого ты сможешь работать за любой IDE.
+1
Без знания основ в дальнейшем будет туго в любой IDE.

Оффлайн eWaLL

  • Автор темы
  • Участник
  • *
  • Сообщений: 171
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #18 : 15 Марта 2010, 17:28:09 »
Но только лучше сначала научись самостоятельно компилировать программы в консоли и писать простые Makefile'ы. После этого ты сможешь работать за любой IDE.
Просто, как-никак, в IDE, с подсветкой синтаксиса, со встроенным дебагом всяко удобнее работать, чем писать код в консоли.
Кстати говоря, я все-таки нашел для себя отличную среду, в которой сразу же разобрался, без курения длинных манов - CodeBlocks.

Mam(O)n, спасибо за помощь, а особенно за строчку
using namespace std;без нее у меня не работали cin и cout (в Borland C++ все работало без нее).  Теперь же все работает отлично и без эмуляторов, вопрос можно считать решенным.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #19 : 15 Марта 2010, 18:08:33 »
using namespace std;без нее у меня не работали cin и cout (в Borland C++ все работало без нее).
Я тебе ссылочку сразу после перовго поста думаешь просто так дал?

Оффлайн aya

  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #20 : 15 Марта 2010, 19:28:15 »
#include <iostream>, а не iostream.h
если без using namespace std, то придется дописывать std::

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Не подключаются библиотеки с++
« Ответ #21 : 16 Марта 2010, 06:36:12 »
таки не уточнил куда придется дописывать std::
а дописывать надо перед любыми объектами, функциями, константами, классами из пространства имен std
в этом пространстве находится вся стандартная библиотека C++, в том числе объеты ассоциированные со стандартными потоками ввода/вывода
#include <iostream>

int main()
{
    std::cout << "Hello, eWaLL!" << std::endl;
    return 0;
}
Если указываешь после включения загловка using namespace std; ты импортируешь все имена из пространства имен std в текущую область видимости
так же можно импортировать только то что нужно. см пример ниже.
Код: (test.cc) [Выделить]
#include <iostream>

int main()
{
    std::cout << "Work!" << std::endl; // так будет работать
    {
using namespace std;
cout << "Work!" << endl; // и так будет работать
    }
    {
        using std::cout;
        cout << "Work!" << std::endl; // и так будет работать
     cout << endl; // а вот так не будет, потому что мы импортировали только одно имя из пространства имён std
    }
    cout << endl; // и так тоже не бует
    return 0;
}
соответсвено как и ожидалось три неопознаных идентификатора
Код: (console) [Выделить]
yurik@ubuntu:~$ g++ test.cc
test.cc: In function ‘int main()’:
test.cc:13: error: ‘endl’ was not declared in this scope
test.cc:15: error: ‘cout’ was not declared in this scope
test.cc:15: error: ‘endl’ was not declared in this scope


P.S. Ребята, читайте стандарт. Он длинный, на английском, но полезный!
« Последнее редактирование: 16 Марта 2010, 06:38:10 от Yurror »

 

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