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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: настройка модели кода clang, unknown type name 'namespace'  (Прочитано 6251 раз)
smfem
Гость
« : Февраль 04, 2019, 17:42 »

Здравствуйте!

Перетекаю из винды на Linux (вчера установил Kubuntu 18.04), всё сходу скомпилилось и заработало (после установки gcc, clang, make и build-essential libgl1-mesa-dev), но

стали появляться странные сообщения от Clang:

Код:
#include <vector>
/home/user/Projects/SolidGUI/elementary.h:8: ошибка: 'vector' file not found
Код:
template <typename T>
inline T MIN(T a, T b)
{
    return a < b ? a : b;
}
/home/user/Projects/SolidGUI/elementary.h:15: ошибка: unknown type name 'template'
/home/user/Projects/SolidGUI/elementary.h:15: ошибка: expected identifier or '('
Код:
namespace Solid
{
/home/user/Projects/SolidGUI/solidPlastic.h:11: ошибка: unknown type name 'namespace'
/home/user/Projects/SolidGUI/solidPlastic.h:11: ошибка: expected ';' after top level declarator
Код:
namespace Solid
{
/home/user/Projects/SolidGUI/solidPlastic.cpp:8: ошибка: unknown type name 'namespace'
/home/user/Projects/SolidGUI/solidPlastic.cpp:8: ошибка: expected ';' after top level declarator

Подскажите пожалуйста, как фиксить?

Он стал теперь код воспринимать как C (а не C++)? В мышкотыкательных настройках не вижу  опций, чтобы явно это задать.. В общем, хочется понять, как его настраивать, этот Clang, чтобы явно задавать параметры типа "src.h - c++".
Или не в том дело?

(немного стыдно создавать вторую тему по шлангу, но решить проблему пока что не удаётся)
« Последнее редактирование: Февраль 04, 2019, 18:30 от smfem » Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #1 : Февраль 04, 2019, 18:34 »

Он стал теперь код воспринимать как C (а не C++)? В мышкотыкательных настройках не вижу  опций, чтобы явно это задать.. В общем, хочется понять, как его настраивать, этот Clang, чтобы явно задавать параметры типа "src.h - c++".
Или не в том дело?

Явно задавать параметры для Clang Code Model не надо, она должна сама определять настройки из "окружения". Стоит проверить правильность настроек компиляторов в "Tools/Options.../Kits" в Qt Creator, и опции для компилятора в файле проекта.

Здесь немного можно посмотреть на процесс определения настроек для Clang Code Model. Может ещё какое-нибудь несоответствие версий инструментов(gcc, clang) в системе(Kubuntu 18.04) влияние оказывает.
Записан

Пока сам не сделаешь...
smfem
Гость
« Ответ #2 : Февраль 04, 2019, 19:36 »

Явно задавать параметры для Clang Code Model не надо, она должна сама определять настройки из "окружения". Стоит проверить правильность настроек компиляторов в "Tools/Options.../Kits" в Qt Creator, и опции для компилятора в файле проекта.
Вместо компилятора для C++ было пустое место, установил в это пустое место GCC и всё заработало, спасибо! Почти без бубна.
http://www.picshare.ru/uploads/190204/U3D99lJpUU.png

[offtop]
говорят же, что нужен бубен для линуксов, а на самом деле достаточно просто понимать, как всё работает, и использовать..
думал что переезд будет сложнее
начал чекать Gnuplot - просто сказка  Улыбающийся
[/offtop]

Цитировать
Здесь немного можно посмотреть на процесс определения настроек для Clang Code Model. Может ещё какое-нибудь несоответствие версий инструментов(gcc, clang) в системе(Kubuntu 18.04) влияние оказывает.
Примерно понял как настраивать, ещё раз спасибо за помощь.
Как ведут себя версии приложений и как взаимодействуют между собой пока что не понимаю, позже посмотрю (базы не хватает на данный момент)


[offtop]
Некоторые домыслы для тех, кто окажется в подобной ситуации.
Наверно надо было сначала установить "окружение" (gcc, clang, make, libgl), соре если использую "окружение" не корректно, затем уже устанавливать Qt Creator, тогда бы всё работало "из коробки", установились бы нужные опции при создании проекта (или создавать проект после установки "окружения"), но не уверен, проверять буду в следующий раз.

Некоторые наблюдения по переносу моего кода (в основном математика) на моей машине (древняя, intel E7200 4GB ddr2, которая даёт хороший стимул к оптимизации) из винды в Linux.
1) Компилирует gcc примерно с такой же скоростью как msvc
2) Исполняется код в Ubuntu примерно так же быстро как в Windows
Думал что будет какой-то перевес в чью-то сторону, но в данном случае его нет (с точностью до ~5%).[/offtop]
« Последнее редактирование: Февраль 04, 2019, 20:40 от smfem » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Февраль 05, 2019, 12:14 »

Среатор перечитывает окружение при старте, добавляя\удаляя автоопределенные компиляторы\версии Qt, так что установка окружения до него не помогла бы, потому что, к сожалению, он не всегда детектит правильно, в частности, я натыкался на похожу проблему, когда в качестве спп компилятора был указан сишный (скажем, gcc vs g++)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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