Я пытался создать проект на C++, использующий sdl2 с premake5 в качестве системы сборки. Моей целью было просто запустить окно, используя код SDL2, предоставленный lazyfoo на SDL2:
https://lazyfoo.net/tutorials/SDL/01_he ... index2.php
Для этого я загрузил исходный код SDL2 и попытался скомпилировать его как статическую библиотеку, как описано на официальном сайте предварительной сборки:
https://premake.github.io/docs/LinkingИсточник взят из
https://github.com/libsdl-org/SDL/relea ... ase-2.30.1
, в частности из SDL2-2.30.1. zip-файл.
Я получаю неопределенную ошибку ссылки на SDL_INIT, SDL_GetError, SDL_CreateWindow и практически любую другую функцию SDL, которую я использую в своем коде.
После нескольких неудачных попыток я воспользовался этим руководством на github, чтобы в первую очередь заставить работать статическую библиотеку.
https://github.com/premake/premake-core ... ample-with -GLFW-and-OpenGL
Я удалил весь код opengl и glfw, так как мне просто хотелось заставить работать простую функцию печати. После того, как мне это удалось, я просто скопировал код и обновил его, чтобы он соответствовал каталогам и путям к файлам SDL2.
Теперь я получаю неопределенную ошибку ссылки, как описано выше.
Мой файл premake5.lua выглядит так:
workspace "Premake Test"
location "Generated"
language "C++"
architecture "x86_64"
configurations { "Debug", "Release" }
filter "configurations:Debug"
symbols "On"
filter "configurations:Release"
optimize "On"
filter { }
targetdir("Build/Bin/%{prj.name}/%{cfg.longname}")
objdir("Build/Obj/%{prj.name}/%{cfg.longname}")
project "SDL"
kind "StaticLib"
includedirs "libs/SDL2-2.30.1/include"
files "libs/SDL2-2.30.1/src/*"
function useSDL()
includedirs "libs/SDL2-2.30.1/include"
links "SDL"
end
project "TestLib"
kind "StaticLib"
files "libs/testlib/**"
function useExampleLib()
includedirs "libs/testlib"
links "TestLib"
end
project "App"
kind "WindowedApp"
files "src/**"
useSDL()
useExampleLib()
Проект SampleLib — это всего лишь моя первая попытка заставить работать общую статическую библиотеку.
Мой файл main.cpp выглядит так:#include
#include
#include "test.h"
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main( int argc, char* args[] )
{
print("Wenn das klappt, dann WTF!!!");
SDL_Window *window = nullptr;
SDL_Surface *screenSurface = nullptr;
if (SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/781 ... arch-linux
Ошибка неопределенной ссылки SDL2, использование premake5 для сборки, Arch Linux ⇐ C++
Программы на C++. Форум разработчиков
1710713434
Anonymous
Я пытался создать проект на C++, использующий sdl2 с premake5 в качестве системы сборки. Моей целью было просто запустить окно, используя код SDL2, предоставленный lazyfoo на SDL2:
https://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php
Для этого я загрузил исходный код SDL2 и попытался скомпилировать его как статическую библиотеку, как описано на официальном сайте предварительной сборки:
https://premake.github.io/docs/LinkingИсточник взят из
https://github.com/libsdl-org/SDL/releases/tag/release-2.30.1
, в частности из SDL2-2.30.1. zip-файл.
Я получаю неопределенную ошибку ссылки на SDL_INIT, SDL_GetError, SDL_CreateWindow и практически любую другую функцию SDL, которую я использую в своем коде.
После нескольких неудачных попыток я воспользовался этим руководством на github, чтобы в первую очередь заставить работать статическую библиотеку.
https://github.com/premake/premake-core/wiki/Tutorial-Premake-example-with -GLFW-and-OpenGL
Я удалил весь код opengl и glfw, так как мне просто хотелось заставить работать простую функцию печати. После того, как мне это удалось, я просто скопировал код и обновил его, чтобы он соответствовал каталогам и путям к файлам SDL2.
Теперь я получаю неопределенную ошибку ссылки, как описано выше.
Мой файл premake5.lua выглядит так:
workspace "Premake Test"
location "Generated"
language "C++"
architecture "x86_64"
configurations { "Debug", "Release" }
filter "configurations:Debug"
symbols "On"
filter "configurations:Release"
optimize "On"
filter { }
targetdir("Build/Bin/%{prj.name}/%{cfg.longname}")
objdir("Build/Obj/%{prj.name}/%{cfg.longname}")
project "SDL"
kind "StaticLib"
includedirs "libs/SDL2-2.30.1/include"
files "libs/SDL2-2.30.1/src/*"
function useSDL()
includedirs "libs/SDL2-2.30.1/include"
links "SDL"
end
project "TestLib"
kind "StaticLib"
files "libs/testlib/**"
function useExampleLib()
includedirs "libs/testlib"
links "TestLib"
end
project "App"
kind "WindowedApp"
files "src/**"
useSDL()
useExampleLib()
Проект SampleLib — это всего лишь моя первая попытка заставить работать общую статическую библиотеку.
Мой файл main.cpp выглядит так:#include
#include
#include "test.h"
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main( int argc, char* args[] )
{
print("Wenn das klappt, dann WTF!!!");
SDL_Window *window = nullptr;
SDL_Surface *screenSurface = nullptr;
if (SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78175739/sdl2-undefined-reference-error-using-premake5-for-building-arch-linux[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия