Russian Qt Forum
Ноябрь 22, 2024, 08:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: TARGET = thread  (Прочитано 16198 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« : Май 03, 2020, 11:15 »

Коллеги,
угораздило меня назвать программу thread. Эффект меня удивил и отнял некоторое время, пока я понял, как от него избавиться. Но не понял, что это было Улыбающийся
Нужно сделать:
Цитировать
qmake
make
make clean
make
Далее последует взрыв. Если TARGET переименовать, то все нормально. Объясните?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Май 04, 2020, 11:05 »

видимо какойто баг креатора, в консоле руками - все ок
можно заводить багрепорт
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #2 : Май 04, 2020, 11:34 »

видимо какойто баг креатора, в консоле руками - все ок
можно заводить багрепорт
Так ведь в линуксе я это делаю в терминале. Хотя в ubuntu 18.04 в креаторе то же самое. Фокусы начинаются, когда в каталоге сборки появляется файл thread. Кстати, в виндах этого нет, потому что создается thread.exe.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #3 : Май 04, 2020, 14:20 »

странна, у мну на ubunut 19.10 щас так:

Код:
$ make
g++ -c -pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_CORE_LIB -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o main.o main.cpp
g++ -Wl,-O1 -o thread main.o   /usr/lib/x86_64-linux-gnu/libQt5Core.so -lpthread
$
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #4 : Май 04, 2020, 14:47 »

а нет, что то непонятное есть:
1. сбой будет если исполняемый файл thread есть, а main.o нет
1. если убрать #include <QThread> - все ок
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #5 : Май 04, 2020, 14:49 »

все ясно - "проблема" в /usr/include/c++/9/future:39

Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #6 : Май 04, 2020, 16:27 »

Ну да, скорее всего эта причина, сам бы мог догадаться, спасибо. Хотя всегда считал, что g++ при include<> сначала ищет в системных путях, потом в каталогах проекта.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #7 : Май 05, 2020, 20:46 »

тут я вижу три момента:
1. qmake вставил "-I." и "поломал" логику https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html
2. make clean - не удаляет бинарник thread, это делает make distclean
3. qtcreator по умолчанию использует make clean
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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