Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10

Не получается собрать cpp файл

18.08.2015, 16:32. Показов 5517. Ответов 30
Метки нет (Все метки)

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

Прошу заранее меня извинить, за возможно дурацкие вопросы, но я совсем не программист.

В связи со спецификой моего железа, понадобилось собрать данный пакет (OS Linux Mint 17.2): https://github.com/blackwolf-70/stseries-light

Насколько я понял, это cpp файл + .pro проектный buld файл для QT Creator.
Стандартным gcc с ключом -llibrary собрать у меня что-то не получилось. Поставил QT Creator проект открывает, но выдает сообщение - Could not find qmake configuration file default. Гуглил данное сообщение, честно пытался решить проблему (как советовал гугл) установкой последнего qt-sdk, но тоже не помогло =(

Подскажите, пожалуйста, можно ли собрать данный пакет используя просто gcc с параметрами? И если да то с какими параметрами (ключами) gcc для сборки данного cpp файла запускать?

Или, может быть, .pro файл можно переделать в понятный gcc make файл?

Очень хочется включать подсветку на ноутбуке просто исполняемым файлом, а не пускаться во все тяжкие используя альтернативные способы, типа скриптов на node.js.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2015, 16:32
Ответы с готовыми решениями:

Есть три файла. файл main.cpp и Source.cpp знают только Header.h, так как он подключен. как же подключается Source.cpp
main.cpp #include <iostream> #include"Header.h" using namespace std; int main() { A ob; ob.f(); return...

Как вызвать в основном .cpp файле тот или иной .cpp файл
Ну, обычно я работал с одним .cpp но вот появилась надобность в основном файле написать интерфейс простенький и выбор одного из 2х...

Как собрать 2 cpp и 1 h файлы в проект?
Работаю в vs2017 если где то обсуждалось ткните носом, если нет то объясните пожалуйста

30
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
18.08.2015, 17:05
Цитата Сообщение от Maxim1980 Посмотреть сообщение
Подскажите, пожалуйста, можно ли собрать данный пакет используя просто gcc с параметрами?
Maxim1980, нет. Можно собрать без Qt Creatora, с помощью только qmake.

Цитата Сообщение от Maxim1980 Посмотреть сообщение
Или, может быть, .pro файл можно переделать в понятный gcc make файл?
Это выполняет qmake. После того как вы устаовите Qt, он должен быть доступен для запуска из командной строки.

После установки Qt, установите библиотеки lhidapi-hidraw hidapi-libusb, т.к. программа зависит от них.

далее чтобы собрать программу из командной строки нужно ввести:
Bash
1
qmake && make
Если есть какие-то ошибки, то гуглим, либо пишем здесь.
0
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
18.08.2015, 20:53  [ТС]
Вот как-то так получилось.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
maxim@maxim-GT70-2PE ~/1 $ qmake && make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
g++ -m64 -Wl,-O1 -o main main.o    -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread 
main.o: In function `enumerate_hid()':
main.cpp:(.text+0x171): undefined reference to `hid_enumerate'
main.cpp:(.text+0x444): undefined reference to `hid_free_enumeration'
main.o: In function `set_mode(hid_device_*, kl_const::modes)':
main.cpp:(.text+0x5b1): undefined reference to `hid_send_feature_report'
main.o: In function `set_color(hid_device_*, kl_const::regions, kl_const::colors, kl_const::levels)':
main.cpp:(.text+0x653): undefined reference to `hid_send_feature_report'
main.o: In function `main':
main.cpp:(.text.startup+0xb3e): undefined reference to `hid_init'
main.cpp:(.text.startup+0xb64): undefined reference to `hid_exit'
main.cpp:(.text.startup+0xba8): undefined reference to `hid_open'
main.cpp:(.text.startup+0xc4a): undefined reference to `hid_close'
main.cpp:(.text.startup+0x1502): undefined reference to `hid_exit'
main.cpp:(.text.startup+0x1507): undefined reference to `hid_init'
main.cpp:(.text.startup+0x1523): undefined reference to `hid_open'
main.cpp:(.text.startup+0x1571): undefined reference to `hid_exit'
collect2: error: ld returned 1 exit status
make: *** [main] Ошибка 1
Все плохо? Или жить будет?

В результате создался файл main.o

Что с ним дальше делать?

Если верить автору ( https://github.com/blackwolf-70/stseries-light ), то нужно запускать под sudo. Но sudo говорит что команды main.o нет (хотя я в свойствах файла разрешил запуск как приложение).
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 21:03
Bash
1
g++ main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb
1
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
18.08.2015, 21:23  [ТС]
Bash
1
2
3
maxim@maxim-GT70-2PE ~/1 $ g++ main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb
main.cpp:2:27: fatal error: hidapi/hidapi.h: Нет такого файла или каталога
 #include <hidapi/hidapi.h>
Пробовал сделать папку hidapi (c hidapi.h) прямо в той же директории, где лежит main.cpp
Но все равно ошибка такая же fatal error: hidapi/hidapi.h: Нет такого файла или каталога.

Видимо не там делаю. Куда hidapi.h нужно класть?

Простите великодушно за глупае вопросы, но я на Linux 3 день.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 21:28
Bash
1
sudo apt-get install libhidapi-dev
1
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
18.08.2015, 21:40  [ТС]
Теперь ругается

Bash
1
2
maxim@maxim-GT70-2PE ~/1 $ g++ main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb
main.cpp:3:18: fatal error: QtCore: Нет такого файла или каталог
Хотя QT я ставил.

Bash
1
2
3
4
5
6
maxim@maxim-GT70-2PE ~/1 $ sudo apt-get install libqtcore4
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлена самая новая версия libqtcore4.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 11 пакетов не обновлено.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 21:43
Bash
1
sudo apt-get install qt-sdk
0
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
18.08.2015, 22:10  [ТС]
Поставил, но не помогло.

Bash
1
2
3
4
5
maxim@maxim-GT70-2PE ~/1 $ g++ main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb
main.cpp:3:18: fatal error: QtCore: Нет такого файла или каталога
 #include <QtCore>
                  ^
compilation terminated.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 22:16
Bash
1
g++ -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/include/qt4/QtCore main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb
Добавлено через 1 минуту

Не по теме:

использовать Qt в такой утилите - лишнее

1
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
18.08.2015, 22:23  [ТС]
Теперь так

Bash
1
2
3
4
5
maxim@maxim-GT70-2PE ~/1 $ g++ -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/include/qt4/QtCore main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb
In file included from /usr/include/qt4/QtCore/QtCore:3:0,
                 from main.cpp:3:
/usr/include/qt4/QtCore/qabstracteventdispatcher.h:45:28: fatal error: QtCore/qobject.h: Нет такого файла или каталога
 #include <QtCore/qobject.h>
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 22:29
Bash
1
g++ -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/include/qt4/QtCore -I/usr/include/qt4 main.cpp -o key-light -lQtCore -lhidapi-hidraw -lhidapi-libusb

Не по теме:

с qt-sdk должен был установится QtCreator.
Попробуйте открыть и собрать проект в нем

1
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
18.08.2015, 22:39  [ТС]
Ура! Все заработало! Спасибо огромное!
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 23:43
Дело было вечером, делать было нечего...
В аттаче исходник без зависимости к Qt
сборка:
Bash
1
g++ -std=c++11 main_no_qt.cpp -o kl -lhidapi-hidraw -lhidapi-libusb
Вроде компилится, работу не проверял.
Использовать на свой страх и все такое...
Вложения
Тип файла: 7z main_no_qt.7z (2.9 Кб, 25 просмотров)
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.08.2015, 23:51
пару мелких ошибок нашел
по крайней мере показывает список устройств
Bash
1
2
3
4
5
max@box:/media/sf_shared/documents/st-light$ g++ -std=c++11 main_no_qt.cpp -o kl -lhidapi-hidraw -lhidapi-libusb
max@box:/media/sf_shared/documents/st-light$ ./kl -l
Устройство: 80ee:21 - /dev/hidraw0
    производитель: VirtualBox
    устройство:    USB Tablet
Вложения
Тип файла: 7z main_no_qt.7z (2.9 Кб, 86 просмотров)
1
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 10
19.08.2015, 19:22  [ТС]
Круто, обязательно попробую сегодня вечерком собрать. Большое спасибо от лица всех владельцев ноутбуков MSI с клавиатурами SteelSeries. До этого момента, насколько я понял изучая форумы, данный функционал (подсветку) многие включали через рещение на js, например вот: http://forum.ubuntu.ru/index.php?topic=260975.0 Но такие решения требуют установки как минимум node.js, а ставить здоровый фрэймворк ради того чо бы кнопочки светились это, на мой взгляд, не очень красиво, и вообще не очень правильно.

Пара библиотек, исполняемый файл и конфиг куда как красивее и удобнее. Когда-нибудь, кто-то напишет нормальный апплет для настройки данного функционала прямо из трэя, типа: http://ru.msi.com/pic/gx870_5.jpg

Как по мне, исполняемый файл с конфигом решение волне себе достаточное, и удачно вписываются в идеологию Linux в целом.

Добавлено через 9 часов 23 минуты
Замечательно работает версия без Qt.
0
6 / 6 / 2
Регистрация: 27.08.2015
Сообщений: 99
27.08.2015, 19:14
Cra3y,
Добрый вечер) Попробовал сегодня скомпилировать исполняемый файл из вашего исходника (#15) пост, он собрался, но при запуске в терминале выдаёт:

~/keyboard$ ./kl -red
Ошибка открытия устройства!

~/keyboard$ ./kl -l
Устройство: 9da:9090 - /dev/hidraw0
производитель: A4TECH
устройство: USB Device
Устройство: 9da:9090 - /dev/hidraw1
производитель: A4TECH
устройство: USB Device
Устройство: 1770:ff00 - /dev/hidraw2
производитель: MSI EPF USB
устройство: MSI EPF USB

в чём причина?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
28.08.2015, 06:28
kish2015, я всего лишь удалил зависимость от Qt
Вы можете либо попробовать запустить через sudo, либо добавить пользователя в группу владельца файла /dev/hidraw2
Посмотреть группу вы можете через команду
Bash
1
ls -l /dev/hidraw2
Можно так же установить `Stiky bit`, но это не лучшее решение
0
6 / 6 / 2
Регистрация: 27.08.2015
Сообщений: 99
28.08.2015, 19:53
Cra3y,
sudo ./kl -red
Заработало!
ls -l /dev/hidraw2
crw------- 1 root root 251, 2 авг. 28 14:13 /dev/hidraw2

так как вы говорите, мне стоит сделать, что бы подсветка работала всё время с автозапуска?

Добавлено через 45 минут
Cra3y,
Потестировал. У меня работает только одна настройка(preset) - это rgb, game не работает вообще. Если задать без пресета:

sudo ./kl -orange - работает прекрасно, но если я задам пресет сам, к примеру:

gbr left green high
gbr middle blue high
gbr right red high

То получаю:
~/keyboard$ sudo ./kl -p gbr
Указанная настройка не найдена

И такое впечатление, что пресет меняет цвет только для левой, и центральной стороны клавиатуры, потому как правая сторона копирует цвет центральной (проверено на разных цветах), т.е. в моём случае нормально работает только один цвет для всей клавиатуры.

Cra3y,
это можно поправить, введя проверку на сравнение цветов в разных регионах(region)?

Добавлено через 12 минут
Интенсивность тоже не меняется, всегда работает на High, сейчас левая и центральная часть клавиатуры подсвечена одинаково, а в настройках файла конфигурации intens центральной части клавиатуры выставлена на light

Добавлено через 18 минут
Кстати, когда выключаю подсветку, то она выключается в 2 этапа, вместо 3: правая и центральная стороны клавиатуры гаснут одновременно, что подтверждает - пресет неправильно определяет области клавиатуры.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
28.08.2015, 20:14
kish2015, я попробую переделать, но обещать ничего не могу - у меня нет данной клавиатуры, тестировать не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.08.2015, 20:14
Помогаю со студенческими работами здесь

Не получается разделить на .h и .cpp
.h class Banner { private: string bannerName; // нименование баннера int numbersShow; // количество показов int...

как компилить файл *.cpp и файл ресурсов одной командой?
Друзья! Ну то есть щас я делаю такой батник: windres -o MENU.o MENU.rc g++ main.cpp MENU.o -o main.exe -mwindows -static rem А это...

Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно?
Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно?

clang не получается скомпилировать программу из нескольких cpp файлов в биткод для LLVM
Пытаюсь скомпилировать программу в биткод для выполнения её с помощью виртуальной машины LLVM. Программа состоит из нескольких cpp файлов....

Не получается собрать проект
У меня Linux В качестве оболочки использую bash В системе установлено три версии Qt (3,4,5.5) Вероятно переменные окружения настроены...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru