LINUX.ORG.RU

LOVE2d 0.8 не собирается

 


0

1

Собираю пакет так:

 cd "$srcdir/love-$pkgver"

  # Generate a configure script, then configure
  echo "Generating makefiles"
  sh platform/unix/automagic 10 # this number names executable and library
  ./configure --enable-silent-rules --prefix=/usr LDFLAGS=""

  # Finally build
  echo "Building"
  make

При попытке собрать LOVE2d 0.8 выдает такие ошибки

modules/graphics/opengl/VertexBuffer.cpp: In member function ‘virtual void* love::graphics::opengl::VBO::map()’:
modules/graphics/opengl/VertexBuffer.cpp:134:3: error: ‘glGetBufferSubDataARB’ was not declared in this scope
   glGetBufferSubDataARB(getTarget(), 0, getSize(), mapped);
   ^~~~~~~~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:134:3: note: suggested alternative: ‘glXCopyBufferSubDataNV’
   glGetBufferSubDataARB(getTarget(), 0, getSize(), mapped);
   ^~~~~~~~~~~~~~~~~~~~~
   glXCopyBufferSubDataNV
modules/graphics/opengl/VertexBuffer.cpp: In member function ‘virtual void love::graphics::opengl::VBO::unmap()’:
modules/graphics/opengl/VertexBuffer.cpp:141:3: error: ‘glBufferSubDataARB’ was not declared in this scope
   glBufferSubDataARB(getTarget(), 0, getSize(), mapped);
   ^~~~~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:141:3: note: suggested alternative: ‘glXCopyBufferSubDataNV’
   glBufferSubDataARB(getTarget(), 0, getSize(), mapped);
   ^~~~~~~~~~~~~~~~~~
   glXCopyBufferSubDataNV
modules/graphics/opengl/VertexBuffer.cpp: In member function ‘virtual void love::graphics::opengl::VBO::bind()’:
modules/graphics/opengl/VertexBuffer.cpp:148:3: error: ‘glBindBufferARB’ was not declared in this scope
   glBindBufferARB(getTarget(), vbo);
   ^~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:148:3: note: suggested alternative: ‘glReadBuffer’
   glBindBufferARB(getTarget(), vbo);
   ^~~~~~~~~~~~~~~
   glReadBuffer
modules/graphics/opengl/VertexBuffer.cpp: In member function ‘virtual void love::graphics::opengl::VBO::unbind()’:
modules/graphics/opengl/VertexBuffer.cpp:153:3: error: ‘glBindBufferARB’ was not declared in this scope
   glBindBufferARB(getTarget(), 0);
   ^~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:153:3: note: suggested alternative: ‘glReadBuffer’
   glBindBufferARB(getTarget(), 0);
   ^~~~~~~~~~~~~~~
   glReadBuffer
modules/graphics/opengl/VertexBuffer.cpp: In member function ‘virtual void love::graphics::opengl::VBO::fill(size_t, size_t, const void*)’:
modules/graphics/opengl/VertexBuffer.cpp:161:4: error: ‘glBufferSubDataARB’ was not declared in this scope
    glBufferSubDataARB(getTarget(), offset, size, data);
    ^~~~~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:161:4: note: suggested alternative: ‘glXCopyBufferSubDataNV’
    glBufferSubDataARB(getTarget(), offset, size, data);
    ^~~~~~~~~~~~~~~~~~
    glXCopyBufferSubDataNV
modules/graphics/opengl/VertexBuffer.cpp: In member function ‘bool love::graphics::opengl::VBO::load(bool)’:
modules/graphics/opengl/VertexBuffer.cpp:181:3: error: ‘glGenBuffersARB’ was not declared in this scope
   glGenBuffersARB(1, &vbo);
   ^~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:181:3: note: suggested alternative: ‘glReadBuffer’
   glGenBuffersARB(1, &vbo);
   ^~~~~~~~~~~~~~~
   glReadBuffer
modules/graphics/opengl/VertexBuffer.cpp:192:3: error: ‘glBufferDataARB’ was not declared in this scope
   glBufferDataARB(getTarget(), getSize(), src, getUsage());
   ^~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp: In member function ‘void love::graphics::opengl::VBO::unload(bool)’:
modules/graphics/opengl/VertexBuffer.cpp:214:4: error: ‘glGetBufferParameterivARB’ was not declared in this scope
    glGetBufferParameterivARB(getTarget(), GL_BUFFER_SIZE, &size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:214:4: note: suggested alternative: ‘glGetTexParameteriv’
    glGetBufferParameterivARB(getTarget(), GL_BUFFER_SIZE, &size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~
    glGetTexParameteriv
modules/graphics/opengl/VertexBuffer.cpp:226:3: error: ‘glDeleteBuffers’ was not declared in this scope
   glDeleteBuffers(1, &vbo);
   ^~~~~~~~~~~~~~~
modules/graphics/opengl/VertexBuffer.cpp:226:3: note: suggested alternative: ‘glSelectBuffer’
   glDeleteBuffers(1, &vbo);
   ^~~~~~~~~~~~~~~
   glSelectBuffer
make[3]: *** [Makefile:2354: modules/graphics/opengl/VertexBuffer.o] Error 1
make[3]: Leaving directory '/home/vbcnthfkmnth123/my_little_repo/love8/src/love-0.8.0/src'
make[2]: *** [Makefile:2390: all-recursive] Error 1
make[2]: Leaving directory '/home/vbcnthfkmnth123/my_little_repo/love8/src/love-0.8.0/src'
make[1]: *** [Makefile:412: all-recursive] Error 1
make[1]: Leaving directory '/home/vbcnthfkmnth123/my_little_repo/love8/src/love-0.8.0'
make: *** [Makefile:344: all] Error 2
==> ERROR: A failure occurred in build().
Дистрибутив Hyperbola GNU/Linux-libre

Подскажите пожалуйста как собрать, возможно я что-то делаю не так при сборке

Cast LINUX-ORG-RU

Извини не знаю, но вероятно дело в престарелом GLee GL Easy Extension library (он должен быть прям в дереве исходников), оно должно помогать при загрузке расширений, но сейчас видимо уже мешает, так как все эти FuncnameARB и скорее всего далее отвалится на FuncnameEXT можно дёргать просто как funcname но GLee в исходниках лове просто не декларирует это.

Может флаг там есть какой, но проще проследовательно и руками просто продекларировать самому подключив к GLee.h свой myext.h куда вписать недостающие декларации и наверное в GLee.c или где то ещё уже загрузить функции. Я тыкаю пальцем в небо, но ручная прописка нужных расширений или просто функций, это нормально. Но может всё же там вручную задан define который просто выключает кучу деклараций, вот и.

Разберись как продекларировать и загрузить 1 opengl функцию, а все остальные по аналогии просто копипастой, действие это однотипное. Я бы помог, но у меня не те обстоятельства чтобы сесть и разобраться.

Если ты хочешь запустить некую love2d игру которая написана под 0.8.0 то есть вероятность того что проще портировать саму игру на love11 или love15 например, с их сборкой проблем быть не должно на современных системах, а в гите love2d есть готовые бинари в том числе для 0.8.0 хотя у тебя спортивный интерес по сборке, а не взятию готового, так что решай сам что лучше.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от anonymous
sudo apt install libdevil-dev libsdl1.2-dev # может что ещё не хватит у тебя
wget https://github.com/love2d/love/archive/refs/tags/0.8.0.zip -O love.zip
unzip love.zip
cd love-0.8.0
./platform/unix/automagic 10
./configure
make CC="gcc-10 -DGL_GLEXT_PROTOTYPES" CXX="g++ -DGL_GLEXT_PROTOTYPES"
./src/love --version
LOVE 0.8.0 (Rubber Piggy)
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 13 (trixie)
Release:	13
Codename:	trixie

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)