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

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

12.12.2024, 10:54. Показов 1286. Ответов 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
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
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
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
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
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
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
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
12.12.2024, 18:54
Цитата Сообщение от Azathtot Посмотреть сообщение
deb пакет
Под все N последних версий дебьяна? А потом еще и под новые собирать и поддерживать все это?
Проще уж исходники выложить на гитхаб - и не париться, покуда нет большой аудитории, пользующейся этим софтом. Собрать код из исходников может любой линуксоид (а если не может - не линуксоид это никакой, а обычный юзер - значит, за него все делает админ).
0
12.12.2024, 18:57

Не по теме:

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

0
Модератор
Эксперт Java
 Аватар для alecss131
2841 / 1350 / 403
Регистрация: 11.08.2017
Сообщений: 4,309
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru