Ошибка undefined reference to qmain int char

Qt 4.6.1

In the following .pro file, when I use the statement

sources = ef.cpp

I get following errors:

RInside.h: No such file or directory

enter image description here

Then when I replace = with := like:

sources := ef.cpp

the above error vanishes, and I get a new error:

error: undefined reference to qMain(int, char**)

enter image description here

From here: https://stackoverflow.com/a/448939/462608

VARIABLE = value Normal setting of a variable — values within it are
recursively expanded when the variable is used, not when it’s declared

VARIABLE := value Setting of a variable with simple expansion of the
values inside — values within it are expanded at declaration time.

I wish to understand what’s happening here, and what’s the solution.

.cpp

#include <RInside.h>
int main(int argc, char *argv[]) 
{
    RInside R(argc, argv);

    R["txt"] = "Hello, world!n";

    R.parseEvalQ ("cat(txt)");

    exit(0);
}

.pro

TEMPLATE    = app
TARGET      = 
DEPENDPATH  += .
INCLUDEPATH += .

R_HOME  := 'c:/R-2.15.1'

# Input
sources  = ef.cpp
programs := $(sources:.cpp=)

## include headers and libraries for R
RCPPFLAGS :=        $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config --cppflags)
RLDFLAGS  :=        $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config --ldflags)
RBLAS     :=        $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config BLAS_LIBS)
RLAPACK   :=        $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config LAPACK_LIBS)

## include headers and libraries for Rcpp interface classes
RCPPINCL  :=        $(shell echo 'Rcpp:::CxxFlags()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla 

--slave)
RCPPLIBS  :=        $(shell echo 'Rcpp:::LdFlags()'  | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave)


## include headers and libraries for RInside embedding classes
RINSIDEINCL :=      $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave)
RINSIDELIBS :=      $(shell echo 'RInside:::LdFlags()'  | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave)


## compiler etc settings used in default make rules
CXX        := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXX)
CPPFLAGS   := -Wall $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CPPFLAGS)
#CXXFLAGS  := $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R $(R_ARCH) 

CMD config CXXFLAGS)
QMAKE_CXXFLAGS := $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXXFLAGS)
LDFLAGS    = -s
QMAKE_LIBS := $(RLDFLAGS) $(RBLAS) $(RLAPACK) $(RINSIDELIBS) $(RCPPLIBS)
CC         := $(shell $(R_HOME)/bin/R $(R_ARCH) CMD config CXX)

nikkka

Мат в 32 хода

237 / 172 / 18

Регистрация: 10.09.2009

Сообщений: 1,096

1

12.08.2010, 09:52. Показов 8600. Ответов 12

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

C++
1
2
3
4
5
6
7
8
9
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLable *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();
}



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

12.08.2010, 09:52

Ответы с готовыми решениями:

C:Usersqtworkqtqtbasesrcwinmainqtmain_win.cpp:97: ошибка: undefined reference to `qMain(int, char**)
Как правильно сконфигурировать проект?
Создал проект с поддиректориями, в нём ещё два Main и…

Ошибки в коде Qt — ошибка: undefined reference to `qMain(int, char**)’; ошибка: error: ld returned 1 exit status
Здравствуйте, есть проект в нем 2 ошибки, не очень понимаю как их можно решить. Помогите, буду…

[Linker error] undefined reference to `sterling(int, int, int)’
#include &lt;iostream&gt;
using namespace std;
int sterling(int,int,int);
int sterling(int,int);
int…

Undefined reference to Change_Array(int, int)
Приветствую всех желающих помочь

Третьи сутки осваиваю функции C++, вторые сутки бьюс не на…

12

NightmareZ

Заблокирован

12.08.2010, 09:53

2

Может быть текст ошибки приведёшь?



0



Мат в 32 хода

237 / 172 / 18

Регистрация: 10.09.2009

Сообщений: 1,096

12.08.2010, 09:55

 [ТС]

3

undefined reference to ‘qMain(int, char**)’
collect2: Id returned 1 exit status



0



Модератор

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

11894 / 7266 / 1721

Регистрация: 25.07.2009

Сообщений: 13,306

12.08.2010, 10:47

4

Цитата
Сообщение от nikkka
Посмотреть сообщение

QLable *label = new QLabel(«Hello Qt!»);

QLabel а не QLable — внимательнее надо быть!



1



Мат в 32 хода

237 / 172 / 18

Регистрация: 10.09.2009

Сообщений: 1,096

12.08.2010, 10:50

 [ТС]

5

Цитата
Сообщение от easybudda
Посмотреть сообщение

QLabel а не QLable — внимательнее надо быть!

фу блин, и правда… спасибо!
торжественно клянусь не задавать больше тупых вопросов!…



0



Эксперт С++

3211 / 1459 / 73

Регистрация: 09.08.2009

Сообщений: 3,441

Записей в блоге: 2

12.08.2010, 20:15

6

внимание!
ошибка:

Цитата
Сообщение от nikkka
Посмотреть сообщение

undefined reference to ‘qMain(int, char**)’

ответ:

Цитата
Сообщение от easybudda
Посмотреть сообщение

QLabel а не QLable — внимательнее надо быть!

не замечаете несоответствия?
я понимаю, что это тоже ошибка, но ошибка линковки говорит совсем о другой причине.

nikkka, скажи, и что, разве ошибка линковки пропала?



1



бжни

2473 / 1684 / 135

Регистрация: 14.05.2009

Сообщений: 7,162

12.08.2010, 20:25

7

Цитата
Сообщение от niXman
Посмотреть сообщение

не замечаете несоответствия?
я понимаю, что это тоже ошибка, но ошибка линковки говорит совсем о другой причине.

не у одного меня паранойя



1



Мат в 32 хода

237 / 172 / 18

Регистрация: 10.09.2009

Сообщений: 1,096

12.08.2010, 22:08

 [ТС]

8

Цитата
Сообщение от niXman
Посмотреть сообщение

nikkka, скажи, и что, разве ошибка линковки пропала?

вообще то да…



0



Эксперт С++

3211 / 1459 / 73

Регистрация: 09.08.2009

Сообщений: 3,441

Записей в блоге: 2

12.08.2010, 22:10

9

Цитата
Сообщение от nikkka
Посмотреть сообщение

вообще то да…

ладно. промолчу. а то как скажу!…



0



Мат в 32 хода

237 / 172 / 18

Регистрация: 10.09.2009

Сообщений: 1,096

12.08.2010, 22:12

 [ТС]

10

niXman, а ведь правда помогло.



0



Модератор

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

11894 / 7266 / 1721

Регистрация: 25.07.2009

Сообщений: 13,306

12.08.2010, 23:59

11

Цитата
Сообщение от niXman
Посмотреть сообщение

я понимаю, что это тоже ошибка, но ошибка линковки говорит совсем о другой причине.

А вот теперь я не понял… Скопировал отсюда, поправил QLable на QLabel и всё нормально срослось… А что там ещё не так-то?

undefined reference to 'qMain(int, char**)'



0



бжни

2473 / 1684 / 135

Регистрация: 14.05.2009

Сообщений: 7,162

13.08.2010, 00:07

12

easybudda, вопрос в том первоначальное написание порождало ошибку линковки? потому как оно скомпилироваться не должно было



0



Модератор

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

11894 / 7266 / 1721

Регистрация: 25.07.2009

Сообщений: 13,306

13.08.2010, 00:12

13

Цитата
Сообщение от alex_x_x
Посмотреть сообщение

вопрос в том первоначальное написание порождало ошибку линковки?

Ну QtCreator порой вообще очень чудно ругается — голову сломаешь, что бы это значило…



0



Автор Тема: [РЕШЕНО]помогите разобраться с ошибками(их 3)(XML)  (Прочитано 1016 раз)
Noize_programmer

Чайник
*
Offline Offline

Сообщений: 70

работает не трогай

Просмотр профиля
WWW


C:Usersqtworkqtqtbasesrcwinmainqtmain_win.cpp:97: ошибка: undefined reference to `qMain(int, char**)’
F:Qt5.145.12.12mingw73_64liblibqtmaind.a(qtmain_win.o): In function `WinMain’:
C:Usersqtworkqtqtbasesrcwinmain/qtmain_win.cpp:97: undefined reference to `qMain(int, char**)’

:-1: ошибка: collect2.exe: error: ld returned 1 exit status

:-1: ошибка: [Makefile.Debug:65: XmlDomRead.exe] Error 1

отладка не запускается

вывод сборки:


16:39:00: Выполняются этапы для проекта XML1…
16:39:00: Настройки не изменились, этап qmake пропускается.
16:39:00: Запускается: «F:Qt5.14Toolsmingw730_64binmingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory ‘F:/projects/Qt_project/5.0.2/lesons/Book/XML/1/build-XML1-Desktop_Qt_5_12_12_MinGW_64_bit-Debug’
g++ -Wl,-subsystem,windows -mthreads -o .XmlDomRead.exe debug/main.o  F:Qt5.145.12.12mingw73_64liblibQt5Widgetsd.a F:Qt5.145.12.12mingw73_64liblibQt5Guid.a F:Qt5.145.12.12mingw73_64liblibQt5Xmld.a F:Qt5.145.12.12mingw73_64liblibQt5Cored.a  -lmingw32 F:Qt5.145.12.12mingw73_64liblibqtmaind.a -LC:openssllib -LC:Utilsmy_sqlmysql-5.6.11-winx64lib -LC:Utilspostgresqlpgsqllib -lshell32
F:Qt5.145.12.12mingw73_64liblibqtmaind.a(qtmain_win.o): In function `WinMain’:
C:Usersqtworkqtqtbasesrcwinmain/qtmain_win.cpp:97: undefined reference to `qMain(int, char**)’
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [Makefile.Debug:65: XmlDomRead.exe] Error 1
mingw32-make[1]: Leaving directory ‘F:/projects/Qt_project/5.0.2/lesons/Book/XML/1/build-XML1-Desktop_Qt_5_12_12_MinGW_64_bit-Debug’
mingw32-make: *** [Makefile:38: debug] Error 2
16:39:01: Процесс «F:Qt5.14Toolsmingw730_64binmingw32-make.exe» завершился с кодом 2.
Ошибка при сборке/развёртывании проекта XML1 (комплект: Desktop Qt 5.12.12 MinGW 64-bit)
Во время выполнения этапа «Сборка»
16:39:01: Прошло времени: 00:01.

помогите пожалуйста(с XML работаю первый раз)

« Последнее редактирование: Май 20, 2023, 12:56 от Noize_programmer »
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)

tux

Крякер
****
Offline Offline

Сообщений: 380

Просмотр профиля


У вас всё нормально. Проект собирается и запускается. И файл addressbook.xml успешно создаётся и заполняется.
Проверял в gentoo. Qt 5.15.9 gcc 12.2.1
Подозреваю, что проблема в MinGW (за ним подобные штуки наблюдаю периодически). Проверить не могу (точнее могу, но уже завтра и в винде)


Записан

PimenS

Крякер
****
Offline Offline

Сообщений: 368

Просмотр профиля


В Windows я думаю в main нужно обязательно передавать аргументы:

int main(int argc, char *argv[])

С ними проект будет собираться. Работу не проверял.


Записан
Noize_programmer

Чайник
*
Offline Offline

Сообщений: 70

работает не трогай

Просмотр профиля
WWW


У вас всё нормально. Проект собирается и запускается. И файл addressbook.xml успешно создаётся и заполняется.
Проверял в gentoo. Qt 5.15.9 gcc 12.2.1
Подозреваю, что проблема в MinGW (за ним подобные штуки наблюдаю периодически). Проверить не могу (точнее могу, но уже завтра и в винде)

спасибо за ответ

В Windows я думаю в main нужно обязательно передавать аргументы:

int main(int argc, char *argv[])

С ними проект будет собираться. Работу не проверял.

спасибо, всё заработало, сам бы никогда не догадался
просто занимаюсь по книге  от Макса Шлее
и в этом коде этих аргументов нет

« Последнее редактирование: Май 18, 2023, 20:52 от Noize_programmer »
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)

tux

Крякер
****
Offline Offline

Сообщений: 380

Просмотр профиля


Немного дополню, как обещал:
Проверил варианты в винде 8.1
Если использовать комплект сборки от MSVC2019 64bit — всё соберётся без всякой ругани
Если использовать MinGW — ошибки будут, как описаны в теме. Однако, если в параметры функции main добавить стандартное int argc, char *argv[] — всё соберётся и там.
Итог: как и подозревал, проблема в MinGW. Хотя параметры функции main не обязательны, обязателен лишь код возврата.


Записан

Авварон


Итог: как и подозревал, проблема в MinGW

никогда такого не было и вот опять!


Записан
PimenS

Крякер
****
Offline Offline

Сообщений: 368

Просмотр профиля


Скорее всего эти ошибки связаны с Qt. Если не использовать #include <QApplication>, то проект будет собираться и без аргументов в main.


Записан
tux

Крякер
****
Offline Offline

Сообщений: 380

Просмотр профиля


Скорее всего эти ошибки связаны с Qt. Если не использовать #include <QApplication>, то проект будет собираться и без аргументов в main.

Ну в другом проекте будут ошибки, какая разница? #include <QApplication> используется часто.


Записан

Noize_programmer

Чайник
*
Offline Offline

Сообщений: 70

работает не трогай

Просмотр профиля
WWW


Немного дополню, как обещал:
Проверил варианты в винде 8.1
Если использовать комплект сборки от MSVC2019 64bit — всё соберётся без всякой ругани
Если использовать MinGW — ошибки будут, как описаны в теме. Однако, если в параметры функции main добавить стандартное int argc, char *argv[] — всё соберётся и там.
Итог: как и подозревал, проблема в MinGW. Хотя параметры функции main не обязательны, обязателен лишь код возврата.

спасибо за доп. информацию


Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)

This topic has been deleted. Only users with topic management privileges can see it.

  • When I compiled my project,Qt Creator showed this error.I googled it,and many people say it’s because of losing main function.But I actually have main function.
    main.cpp
    @#include<QApplication>
    #include»dialog.h»

    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);
    dialog d;
    d.show();

    return app.exec();
    }
    @

    .pro
    @TEMPLATE = app
    TARGET = custombutton_mine
    HEADERS +=
    mybutton.h
    dialog.h

    SOURCES +=
    mybutton.cpp
    dialog.cpp
    main.cpp

    FORMS +=
    dialog.ui@

  • I’m getting the same error at compile time. Tried checking entire code line by line , yet can’t figure it out.

  • @JadeN001
    How you get the same error «at run time» given that it’s a compile-time error message?

  • @JonB sorry its by mistake,yeah i am getting it at compile time

  • What OS, what Qt version, which compiler?
    What do you have in your project file (.pro)?

  • @kshegunov OS:windows
    qt version : Qt 5.10.1 (MSVC 2015, 32 bit).
    i am using sub-project for plugin implementation so my main pro file is containing only
    TEMPLATE = subdirs

    SUBDIRS =
    Server
    plugin

    but i think problem is in my plugin project which is sub project of my main project.

    plugin.pro

    TEMPLATE        = lib
    CONFIG         += plugin
    QT             += widgets
    INCLUDEPATH    += ../mainwindow
    HEADERS += 
        broadcast_plugin.h
    
    SOURCES += 
        broadcast_plugin.cpp
    TARGET          = $$qtLibraryTarget(broadcast_plugin)
    DESTDIR         = ../plugins
    
  • @JadeN001 said in Error: undefined reference to `qMain(int, char**)’:

    but i think problem is in my plugin project which is sub project of my main project.

    You can know — it’s a linker error and you should check the build output. Provide the relevant project file for the binary that fails to link.

  • @kshegunov yeah thanks..i will go through it.

  • ошибка: undefined reference to `Profile::Profile(QWidget*)’

    void Social::on_action_triggered()
    {
    Profile *pf = new Profile;
    pf->show();
    }

    //____________________

    ошибка: undefined reference to `Profile::on_buttonBox_accepted()’

    ;

    жалуеться во всех case

    void Profile::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
    {
    if (_c == QMetaObject::InvokeMetaMethod) {
    Q_ASSERT(staticMetaObject.cast(_o));
    Profile *_t = static_cast(_o);
    ccase 0: _t->on_buttonBox_accepted(); break;
    case 1: _t->on_buttonBox_rejected(); break;
    case 2: _t->get_log_a_pas((*reinterpret_cast< QString(*)>(_a[1])),(*……….
    default: ;
    }
    }
    }

    Ошибка:
    C:\iwmake\build_mingw_opensource\src\winmainqtmain_win.cpp:131: ошибка: undefined reference to `qMain(int, char**)’


    • Вопрос задан

      более трёх лет назад

    • 1035 просмотров

    Пригласить эксперта

    Или в объявлении profile позабыли Q_OBJECT, или надо перезапустить qmake

    Первый фрагмент — вы хедер с Profile-ом не забыли заинклудить?
    Второй фрагмент — пересоберите moc-файл, в котором эти ошибки. Видимо он уже не актуален.

    Вы не определили методы on_buttonBox_accepted, о чем вам и сообщил линкер.


    • Показать ещё
      Загружается…

    07 июн. 2023, в 10:19

    20000 руб./за проект

    07 июн. 2023, в 10:07

    500 руб./за проект

    07 июн. 2023, в 08:55

    500 руб./за проект

    Минуточку внимания

    Понравилась статья? Поделить с друзьями:
  • Ошибка unable to set graphics mode
  • Ошибка u0140 шевроле орландо
  • Ошибка ue33 pioneer ресивер 921
  • Ошибка u0140 шевроле каптива
  • Ошибка u3110 ваз 2107 инжектор