Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336

Как в CLion подключить папку лежащую в корне где и src/main.cpp

12.12.2024, 10:54. Показов 1392. Ответов 9

Студворк — интернет-сервис помощи студентам
Доброго времени суток, здравствуйте!!!!
У меня такой вопрос у меня в коде в main.cpp мой собственный курсор прописан
путь мне не нравится "../img/hand.png" можно ли сделать так "img/hand.png"

Работаю с SFML 2.6.1 и IDE CLion 2024.3 работаю в Linux Mint 22.0

Вот код CMakeLists.txt:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
cmake_minimum_required(VERSION 3.30)
project(THE_BEST)
# Укажите, что вам нужна поддержка C++20
set(CMAKE_CXX_STANDARD 20)
 
# Найдите SFML
find_package(SFML 2.6 COMPONENTS graphics audio system REQUIRED)
 
# Указываем директорию с исходными файлами вашего проекта
include_directories(${CMAKE_SOURCE_DIR}/src)
file(GLOB_RECURSE SOURCES "src/*.cpp")
 
# Указываем директорию с файлами графики
include_directories(${CMAKE_SOURCE_DIR}/img)
 
# Указываем директорию с файлами шрифтов
include_directories(${CMAKE_SOURCE_DIR}/fonts)
 
# Указываем директорию с файлами музыки
include_directories(${CMAKE_SOURCE_DIR}/music)
 
# Создаём исполняемый файл
add_executable(THE_BEST ${SOURCES})
 
# Подключаем библиотеки
target_link_libraries(THE_BEST sfml-graphics sfml-audio sfml-system)
Вот код main.cpp:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/Audio.hpp>
#include <iostream>
 
using namespace sf;
using namespace std;
 
int main()
{
    RenderWindow win(VideoMode(1280,800), L"ЛИНУКС НАВСЕГДА!!!!");
 
    // Прописываем путь до текстуры курсора
    Texture cursorTexture;
    if (!cursorTexture.loadFromFile("../img/hand.png")) {
        return EXIT_FAILURE;
    }
 
    // Создаем курсор из текстуры
    Cursor cursor;
    if (!cursor.loadFromPixels(cursorTexture.copyToImage().getPixelsPtr(),
    Vector2u(cursorTexture.getSize().x, cursorTexture.getSize().y),
    Vector2u(0, 0))) {
        return EXIT_FAILURE;
    }
 
    win.setMouseCursor(cursor);
 
    while (win.isOpen()) {
        Event event;
        while (win.pollEvent(event)) {
            if (event.type == Event::Closed) {
                win.close();
            }
 
            // if (event.type == Event::KeyPressed && event.key.code == Keyboard::Escape) {
            //     showMenu(win);
            // }
        }
 
        win.clear(Color::Blue);
        win.display();
    }
    return 0;
}
С Уважением, Segeja
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2024, 10:54
Ответы с готовыми решениями:

Как в CLion подключить папку лежащую в корне где и main.cpp
Здравствуйте форумчане!!!! У меня такой вопрос как папку с изображениями и не только но и с остальным контентом, в одной директории...

Не в одной программе CLion или QT CREATOR с библиотекой SDL не компилируется main.cpp
Доброго времени суток уважаемые форумчане!!!! Вообщем у меня такой вопрос зачем эти мощные программы когда я компилирую всё в...

Main.cpp: In function ‘int main()’: main.cpp:10:1: error: ‘then’ was not declared in this scope
Написал программу и выдает ошибку. #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() {double a, b, x; ...

9
Windows must die
673 / 854 / 103
Регистрация: 23.11.2021
Сообщений: 5,059
Записей в блоге: 17
12.12.2024, 11:03
Цитата Сообщение от Segeja Посмотреть сообщение
cursorTexture.loadFromFile("../img/hand.png")
А если утилита будет запущена вообще из другой директории? По-хорошему, данные утилиты нужно куда-нибудь в /opt и т.п. складывать. Соответственно, путь к ним будет получен на стадии cmake, и его нужно положить в config.h. А уж после сборки и установки все будет ОК.

Добавлено через 1 минуту
И да,
Цитата Сообщение от Segeja Посмотреть сообщение
include_directories(${CMAKE_SOURCE_DIR}/img)
это - для заголовочных файлов. Данная команда просто добавляет к флагам g++ "-I${CMAKE_SOURCE_DIR}/img". Нет смысла вызывать include_directories для файлов ресурсов.
0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
12.12.2024, 11:46  [ТС]
Eddy_Em, здравствуйте поясните пожалуйста по проще

Добавлено через 37 минут
Eddy_Em, Просто я недавно прораммирую на C++, но язык мне нравится потому что он универсальный
поясните пожалуйста что класть или создавать проект в /opt и что нужно прописать в config.h
вот такие вопросы у меня, если можно растолкуйте мне я в этом новичок,
но могу написать программу для терминала что-то типа текстовой игры,
С Уважением, Segeja
0
Windows must die
673 / 854 / 103
Регистрация: 23.11.2021
Сообщений: 5,059
Записей в блоге: 17
12.12.2024, 11:56
Цитата Сообщение от Segeja Посмотреть сообщение
что класть или создавать проект в /opt и что нужно прописать в config.h
Для этого более подробно нужно cmake изучить. Вот здесь можно почитать документацию по cmake о config.h.
Также стоит почитать документацию о том, как создавать цель install, чтобы размещать все ресурсы в нужных местах.

Ну, а если этого не нужно и все запускается из текущей директории, то и заморачиваться не надо: просто писать относительный путь.

Не по теме:

и да, в файловой системе нет понятия "папка": есть "директория", она же "каталог", "справочник"…

0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
12.12.2024, 15:36  [ТС]
Eddy_Em, Дело в том что в проекте то всё запускается и работает а вот
как сделать AppImage потому что в каталоге MyApp/usr/img когда лежит а исполняемый файл
лежит по адресу MyApp/usr/bin/myapp так вот программа запускается и всё грузится но
программа ведёт себя криво то есть создаётся УДАЧНО, но MyApp_x86_64.AppImage и при запуске
курсор не грузится пишется в терминале Не могу загрузить файл "../img/hand.png"
вот поэтому я и написал эту тему

С Уважением, Segeja
0
Windows must die
673 / 854 / 103
Регистрация: 23.11.2021
Сообщений: 5,059
Записей в блоге: 17
12.12.2024, 16:06
Цитата Сообщение от Segeja Посмотреть сообщение
AppImage
Не надо этой дрянью пользоваться! Просто в cmake настроить правила установки и по-традиции:
Code
1
2
3
4
mkdir mk && cd mk
cmake .. -D... -D...
make
su -c "make install"
И готово.
А все эти AppImage — отличный способ линукс в дерьмо маздаеподобное превратить!
0
 Аватар для Azathtot
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
12.12.2024, 18:24
Цитата Сообщение от Segeja Посмотреть сообщение
как сделать AppImage
а чем вас deb пакет не устраивает?
0
Windows must die
673 / 854 / 103
Регистрация: 23.11.2021
Сообщений: 5,059
Записей в блоге: 17
12.12.2024, 18:54
Цитата Сообщение от Azathtot Посмотреть сообщение
deb пакет
Под все N последних версий дебьяна? А потом еще и под новые собирать и поддерживать все это?
Проще уж исходники выложить на гитхаб - и не париться, покуда нет большой аудитории, пользующейся этим софтом. Собрать код из исходников может любой линуксоид (а если не может - не линуксоид это никакой, а обычный юзер - значит, за него все делает админ).
0
12.12.2024, 18:57

Не по теме:

Цитата Сообщение от Eddy_Em Посмотреть сообщение
Под все N последних версий дебьяна?
Я вообще бибизьянов не люблю, я слаковод... Но тут все зависит от модели распостранения.
И под все N не надо, достаточно ограничится некими минимальными версиям либ (начиная с libc). Правда у контрибуторов иногда крышу сносит, и они про обратную совместимость забывают. Но это сейчас к счастью бывает не очень часто.

0
Модератор
Эксперт Java
 Аватар для alecss131
2865 / 1371 / 409
Регистрация: 11.08.2017
Сообщений: 4,397
Записей в блоге: 2
12.12.2024, 22:59
Имхо лучше копировать ресурсы к бинарнику, я у себя в CLion это делал так
Code
1
2
3
4
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E copy_directory
            ${CMAKE_CURRENT_SOURCE_DIR}/assets/
            ${CMAKE_CURRENT_BINARY_DIR}/assets/)
тут копируется папка assets целиком, и тогда в коде можно не писать ..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2024, 22:59
Помогаю со студенческими работами здесь

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

Не видно папку с файлами размещёнными рядом с main.cpp всё дело в CMake
Доброго времени суток форумчане!!!! Вот такая проблема вчера мне помогли здесь сделали CMakeLists.txt и теперь всё корректно...

Как передать переменные и массивы из main.cpp в mainwindow.cpp?
Как передать переменные и массивы из main.cpp в mainwindow.cpp? main.cpp #include &quot;mainwindow.h&quot; #include &lt;QApplication&gt; ...

Как создать многофайловый проект C++ на macbook в vs code? У меня есть файл .h, .cpp и main.cpp
Как создать многофайловый проект C++ на macbook в vs code? У меня есть файл .h, .cpp и main.cpp

Как указать папку поиска для инклюдников, лежащую в подпапке с кодом?
Я наверное совсем нубас, но что то компилятор отказывается искать мои инклюдники, если например есть папка C:\1\ В ней лежит файл PRO И...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru