Ide Netbeans (linux) ошибка при запуске любой C++ программы

Тема в разделе "Общие вопросы по С и С++", создана пользователем -, 24 авг 2011.

  1. Гость

    Здравствуйте. Возникла следующая проблема в NetBeans'е:
    любая программа на C++, нормально компилируясь, при запуске выдает ошибку.
    Например
    программа
    Код (Text):
    #include <cstdlib>
    using namespace std;
    int main(int argc, char** argv)
    {

    return 0;
    }
    лог компилятора
    Код (Text):
    ОЧИСТИТЬ SUCCESSFUL (общее время: 60мс)
    mkdir -p build/Debug/GNU-Linux-x86
    rm -f build/Debug/GNU-Linux-x86/main.o.d
    g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp

    ПОСТРОИТЬ SUCCESSFUL (общее время: 136мс)
    лог запуска
    Код (Text):
    "/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
    make[1]: Вход в каталог `/home/andrei/NetBeansProjects/CppApplication_1'
    "/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/cppapplication_1
    make[2]: Вход в каталог `/home/andrei/NetBeansProjects/CppApplication_1'
    mkdir -p dist/Debug/GNU-Linux-x86
    g++  -o dist/Debug/GNU-Linux-x86/cppapplication_1 build/Debug/GNU-Linux-x86/main.o
    /usr/bin/ld: cannot find -lm
    collect2: ld returned 1 exit status
    make[2]: *** [dist/Debug/GNU-Linux-x86/cppapplication_1] Ошибка 1
    make[2]: Выход из каталога `/home/andrei/NetBeansProjects/CppApplication_1'
    make[1]: *** [.build-conf] Ошибка 2
    make[1]: Выход из каталога `/home/andrei/NetBeansProjects/CppApplication_1'
    make: *** [.build-impl] Ошибка 2

    ПОСТРОИТЬ FAILED (значение выхода 2, общее время: 162мс)
    Есть подозрение, что что-то напортачил в системе...
    Пакет libm.so установлен. Из командной строки в таком виде
    Код (Text):
    ~/0$ gcc 0.c -L/usr/lib/i386-linux-gnu
    все нормально компилируется и запускается, без указания адреса ошибка
    Надеюсь на вашу помощь.
    Ранее обсуждение проблемы было здесь
     
  2. a0z

    a0z Well-Known Member

    Регистрация:
    15 мар 2011
    Сообщения:
    109
    Симпатии:
    0
    Я в компиляции под линуксом не силён, но тем не менее, пару вопросов возникает.

    1. Чёт не понятненько, почему лог линковки называется логом запуска?
    Почему компилируется понятно - на этом этапе либы не нужны. Во время линковки библиотека libm не находится, и вываливается ошибка.

    2. gcc 0.c -L/usr/lib/i386-linux-gnu
    Тоже не понятна команда. Во первых в билде используется g++, а не gcc. Потом тут не указано, что нужно линковаться с libm (в проекте я тоже не вижу явного указания линковаться с libm, но возможно это приходит через ключики).

    Я бы попробовал как-то так

    g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
    g++ -o dist/Debug/GNU-Linux-x86/cppapplication_1 build/Debug/GNU-Linux-x86/main.o

    если компилируется и линкуется, то значит проблема в настройке окружения IDE.
    если не компилируется, то надо смотреть дальше. например найти где лежит libm.so, и добавить эту директорию через -L:

    g++ -o dist/Debug/GNU-Linux-x86/cppapplication_1 build/Debug/GNU-Linux-x86/main.o -L/path-to-libm/
     
  3. Гость

    Во-первых, спасибо за ответ)
    Первая команда нормально выполняется. Вторая выдает все ту же ошибку.
    В таком виде одна библиотека цепляется нормально, не находит libc, лежащий в /lib/i386-linux-gnu/
    Код (Text):
    g++ -o dist/Debug/GNU-Linux-x86/cppapplication_1 build/Debug/GNU-Linux-x86/main.o -L/usr/lib/i386-linux-gnu//usr/bin/ld: cannot find /lib/libc.so.6
    collect2: ld returned 1 exit status
    Так
    Код (Text):
    g++ -o dist/Debug/GNU-Linux-x86/cppapplication_1 build/Debug/GNU-Linux-x86/main.o -L/usr/lib/i386-linux-gnu/ -L/lib/i386-linux-gnu/
    то же самое
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    АндRei, libm.so - это динамическая библиотека, это как DLL в ОС Windows. Убедись в том что у тебя есть libm.a.
     
  5. Гость

    Да, что это библиотека, уже представляю. Что касается libm.a - есть два файла, usr/lib/libm.a и usr/lib/xen/libm.a
     
Загрузка...
Похожие Темы - Ide Netbeans (linux)
  1. cybert
    Ответов:
    0
    Просмотров:
    102
  2. Serduko
    Ответов:
    0
    Просмотров:
    313
  3. beloff
    Ответов:
    2
    Просмотров:
    345
  4. kuzduk
    Ответов:
    0
    Просмотров:
    352
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    430

Поделиться этой страницей