forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   axelynx (http://forum.boolean.name/showthread.php?t=14637)

Mhyhr 06.08.2012 13:57

Ответ: axelynx
 
axelynx_108.exe
Линупсоиды негодуют

Кстати как и у Den'a
Цитата:

andrew@***]$ ./test_client
bash: ./test_client: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
fedora 17

HolyDel 06.08.2012 14:03

Ответ: axelynx
 
axelynx_108.exe - это же проприетарная сборка под винду...

по ссылке http://www.likosoft.com/download/9/
качается демка под убунту. тока она без танцев с бубном не работает. я пока не знаю как решить проблему с этой so-шкой.

под линук я тоже планирую сделать проприетарную сборку. но не знаю как.

хочу чтобы можно было написать sudo apt-get install axelynx и оно бы проинсталило и кодеблоксы, и темплейт(или даже мастер) для них и сам движок.

pozitiffcat 06.08.2012 17:48

Ответ: axelynx
 
сошки нужно линковать как обычную библиотеку, и тогда работает, в линуксе (gcc) компилятор экспортирует все символы в сошку, поэтому доступ к любой функции без танцев с бубном, только надо extern "C" делать

под линук я тоже планирую сделать проприетарную сборку. но не знаю как.
Делаешь сошку с заголовочниками, выкладываешь, желательно под разные платформы процов, дальше линуксоиды разберуться.

ЗЫ. либа должны быть гдето в /usr/local/lib, потом должна подхватиться средой командой в консоли ldconfig, тогда ее система сможет находить, а название должно начинаться на lib, например libAxelynx.so линкуется с параметром компилятора -lAxelynx

pozitiffcat 06.08.2012 17:54

Ответ: axelynx
 
Цитата:

Сообщение от Mhyhr (Сообщение 235320)
axelynx_108.exe
Линупсоиды негодуют

Кстати как и у Den'a

fedora 17

попробуй сначала ldconfig вызови в терминале

HolyDel 06.08.2012 19:24

Ответ: axelynx
 
Цитата:

сошки нужно линковать как обычную библиотеку
и каким образом? если у меня не создается библиотека импорта (*.a) при сборке so-шки?

Цитата:

только надо extern "C" делать
не хочу. похерится тогда вся моя красивая разбивка по неймспейсам.

Цитата:

Делаешь сошку с заголовочниками, выкладываешь, желательно под разные платформы процов, дальше линуксоиды разберуться.
хочу sudo apt-get install axelynx

Цитата:

ЗЫ. либа должны быть гдето в /usr/local/lib, потом должна подхватиться средой командой в консоли ldconfig, тогда ее система сможет находить, а название должно начинаться на lib, например libAxelynx.so линкуется с параметром компилятора -lAxelynx
я хочу таскать либу рядом с исполняемым файлом.

pozitiffcat 06.08.2012 20:11

Ответ: axelynx
 
в линуксе не нужна библиотека импорта. Ниче не похерится, у меня же работает, extern "C" это ни неймспейс а команда линкеру, как экспортировать символы
насчет sudo apt-get, делай deb пакет, у которого в скрипте запихать либу в /usr/local/lib сделать ldconfig и установить демо с инклюдами
>я хочу таскать либу рядом с исполняемым файлом.
тогда учи мат часть по линуксу. Вообще это реально, но так не делают

HolyDel 06.08.2012 20:34

Ответ: axelynx
 
Код:

Ниче не похерится, у меня же работает, extern "C" это ни неймспейс а команда линкеру, как экспортировать символы
блин, с extern "C" он сэкспортит:
somnamespace::somefunc() как somefunc
и somealsonamespace::somefunc() также как somefunc.

Цитата:

насчет sudo apt-get, делай deb пакет, у которого в скрипте запихать либу в /usr/local/lib сделать ldconfig и установить демо с инклюдами
а можно поподробнее? или хотябы кейворды по которым гуглить.

wolfhound512 06.08.2012 20:35

Ответ: axelynx
 
Еще пара вопросов:
1) Как удалить surface? delete?
2) Как изменить surface (изменить количество вершин/треуголников) ?
3) Если необходимо изменить геометрию объекта в сцене (добавить удалить вершины/треугольники), то нужно удалить entity, удалить surface, и создать все заново?
4) можно ли задавать параметры вершин списками,а не по одной?

HolyDel 06.08.2012 20:41

Ответ: axelynx
 
1) да.
2) пока никак. только удаляя прошлый сюрфейс и создавая новый.
3) сейчас - да. вообще это должно свестись только к изменению сюрфейса.
4) нет.

в версии 1.085 все ето будет )))

pozitiffcat 06.08.2012 20:43

Ответ: axelynx
 
Цитата:

Сообщение от HolyDel (Сообщение 235377)
а можно поподробнее? или хотябы кейворды по которым гуглить.

http://forum.linux.by/viewtopic.php?t=6565
http://takeworld.blogspot.com/2009/05/deb.html
кстати, а какая разница, как внутри символы выглядят? с extern "C" тебе ни о чем париться не надо, если работать по законам линуксу и класть so в соотв директорию

pax 06.08.2012 21:18

Ответ: axelynx
 
Цитата:

Сообщение от pozitiffcat (Сообщение 235380)
кстати, а какая разница, как внутри символы выглядят? с extern "C" тебе ни о чем париться не надо, если работать по законам линуксу и класть so в соотв директорию

вроде бы extern "C" экпсортирует только функции, но не классы

pozitiffcat 06.08.2012 21:33

Ответ: axelynx
 
да, но если получить указатель на созданный экз. класса внутри библиотеки, то все работает, т.к. gcc экспортирует принудительно все символы. А так да, я не уточнил, extern "C" работает для функций а не классов, классы вообще заворачивать не надо.

wolfhound512 06.08.2012 21:44

Ответ: axelynx
 
Нашел недочет в Wizard'е, он генерирует проект с пустыми определениями препроцессора, в результате чего не срабатывает такая конструкция:
Код:

#ifdef WIN32
  #ifdef AXELYNX_EXPORTS
      #define AXELYNX_API __declspec(dllexport)
  #else
      #define AXELYNX_API __declspec(dllimport)
  #endif
#else
  #define AXELYNX_API
#endif

что ведет к ошибкам типа:
Цитата:

axelynx32_d.lib(axelynx32_d.dll) : error LNK2005: "public: __thiscall axelynx::vec3::vec3(float,float,float)" (??0vec3@axelynx@@QAE@MMM@Z) уже определен в world.obj

HolyDel 06.08.2012 22:10

Ответ: axelynx
 
wolfhound512, там проблема не с дефайнами. они правильные. для пользовательского кода с динмаической линковкой они и должны быть пустыми.

проблема в самих классах (они не должны быть экспортируемыми, экспоритируемыми должны быть лишь некоторые из их методов). спасибо за замечение, к следующей сборке пофикшу этот косяк.

Цитата:

да, но если получить указатель на созданный экз. класса внутри библиотеки, то все работает, т.к. gcc экспортирует принудительно все символы. А так да, я не уточнил, extern "C" работает для функций а не классов, классы вообще заворачивать не надо.
я еще раз говорю. мне не нужен extern "C". мне нужны классы, перегрузка, неймспейсы, шаблоны. мне нужны плюсы, а не си. я не вижу разницы будет ли линкер использовать человеческие имена методов или декорированные. от пользователя это скрыто.

pozitiffcat 06.08.2012 22:26

Ответ: axelynx
 
мучийся


Часовой пояс GMT +4, время: 18:12.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot