crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> Qt4 работа с 3d моделями
Snikersoman
  опции профиля:
сообщение 18.11.2010, 22:00
Сообщение #21


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 14.11.2010
Пользователь №: 2187

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2010, 17:16) *
в виндовозе обячно просто 3ds.dll, без lib в начале, эта приставка чаще в a-файлам относится:
lib3ds.a/3ds.dll
Так и есть я вставил в систем32 библиотеку с таким названием, компилятор ее проглотил и выдал другую ошибку... Тот факт что нужна dllка которой нигде нет заставил меня залезть в гугл, и теперь понятно что lib3ds библиотека требует компиляции. Это просто если верить readme
Раскрывающийся текст

Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.

The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').

It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.

If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.

The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.

The simplest way to compile this package is:

1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.

Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.


2. Type `make' to compile the package.

3. Optionally, type `make check' to run any self-tests that come with
the package.

4. Type `make install' to install the programs and any data files and
documentation.

5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.

6. Often, you can also type `make uninstall' to remove the installed
files again.


Однако операции configure и make у меня сделать не получилось. Думаю потому что там соответствующих экзешников нет( Есть только какие то странные файлы с расширением .файл, . in, .m4, .sh) Я пробовал переименовывать файлы с расширением .файл в .exe -выдало сообщение "программы не умещается в памяти"
На этом сайте нашел такую ифн:
ссылка
Раскрывающийся текст
This one is needed only for the io_3ds plugin. Without this plugin the 3ds file formats will not be parsed. So download lib3ds 1.3.0, unzip it and compile it. You should unzip the it in a dir named code/lib. To compile the library with the mingw compiler provided with the open source version of qt you need to install the MSYS-1.0.10 bash based environment, run there the ./configure script and then build the library with a simple make. The compiled library by default could be in a place different than the one expected by the MeshLab pro, so move lib3ds.a into code/lib/lib3ds-1.3.0/lib3ds/lib3ds.a. A couple notes:

MSYS-1.0.10 Что это такое?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2010, 22:51
Сообщение #22


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Snikersoman @ 19.11.2010, 0:00) *
Так и есть я вставил в систем32 библиотеку с таким названием
а зачем ты её туда суёшь, там у тебя штатная помойка?

Snikersoman, ты скачал установщик libQGLViewer, или нет?
То что ты делаешь, а то как-то всё слишком сложно, яб сказал по комсомольски.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snikersoman
  опции профиля:
сообщение 18.11.2010, 23:02
Сообщение #23


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 14.11.2010
Пользователь №: 2187

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2010, 22:51) *
То что ты делаешь, а то как-то всё слишком сложно

Я был бы рад если бы все было проще:)
Цитата(Litkevich Yuriy @ 18.11.2010, 22:51) *
ты скачал установщик libQGLViewer?

Скачал, поставил с ним проблем нет вроде, но для моего примера (3dsViewer ссылк)
плюсом к libQGLViewer нужна еще библиотека lib3ds ссылк
Я ее качаю ( lib3ds-1.3.0.zip) ставлю не компилируя ставлю и получаю свои бредовые ошибки...(
Может кто нибуть из более опытных программеров попробует этот пример просто запустить а то у меня как то не очень получается пока :cray:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.11.2010, 23:58
Сообщение #24


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Snikersoman @ 19.11.2010, 1:02) *
ставлю не компилируя ставлю и получаю свои бредовые ошибки...(
что ты куда ставишь?
lib3ds-1.3.0.zip - зазипованные исходники, никакого установщика там нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snikersoman
  опции профиля:
сообщение 19.11.2010, 0:15
Сообщение #25


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 14.11.2010
Пользователь №: 2187

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 18.11.2010, 23:58) *
что ты куда ставишь?
lib3ds-1.3.0.zip - зазипованные исходники, никакого установщика там нет.

В 3dsViewerе требуются хедеры и сппшники из lib3ds-1.3.0.zip они там в папке lib3ds
я их засовываю в директорию проекта и компилятор перестает жаловаться на их отсутствие
Вот исходники самого примера ссылк
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 19.11.2010, 2:05
Сообщение #26


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Скачиваешь и устанавливаешь MSYS.
Распаковываешь lib3ds-1.3.0

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

extern LIB3DSAPI void lib3ds_file_bounding_box(Lib3dsFile *file, Lib3dsVector min, Lib3dsVector max);

Раскрывающийся текст
void
lib3ds_file_bounding_box(Lib3dsFile *file, Lib3dsVector min, Lib3dsVector max)
{
  Lib3dsBool init=LIB3DS_FALSE;

  {
    Lib3dsVector lmin, lmax;
    Lib3dsMesh *p=file->meshes;

    if (!init && p) {
      init = LIB3DS_TRUE;
      lib3ds_mesh_bounding_box(p, min, max);
      p = p->next;  
    }
    while (p) {
      lib3ds_mesh_bounding_box(p, lmin, lmax);
      lib3ds_vector_min(min, lmin);
      lib3ds_vector_max(max, lmax);
      p=p->next;
    }
  }
  {
    Lib3dsCamera *p=file->cameras;
    if (!init && p) {
      init = LIB3DS_TRUE;
      lib3ds_vector_copy(min, p->position);
      lib3ds_vector_copy(max, p->position);
    }

    while (p) {
      lib3ds_vector_min(min, p->position);
      lib3ds_vector_max(max, p->position);
      lib3ds_vector_min(min, p->target);
      lib3ds_vector_max(max, p->target);
      p=p->next;
    }
  }
  {
    Lib3dsLight *p=file->lights;
    if (!init && p) {
      init = LIB3DS_TRUE;
      lib3ds_vector_copy(min, p->position);
      lib3ds_vector_copy(max, p->position);
    }

    while (p) {
      lib3ds_vector_min(min, p->position);
      lib3ds_vector_max(max, p->position);
      if (p->spot_light) {
        lib3ds_vector_min(min, p->spot);
        lib3ds_vector_max(max, p->spot);
      }
      p=p->next;
    }
  }
}


Запускаешь MSYS, переходишь в директорию lib3ds-1.3.0
./configure --prefix=/path_to_lib3ds/lib 
make
make install


теперь у тебя в /path_to_lib3ds/lib находится все чтобы подцепить эту библиотеку

Далее скачиваешь libQGLViewer-2.3.8.zip.
Распаковываешь

Открываешь libQGLViewer-2.3.8.pro, правишь его

CONFIG       += ordered
TEMPLATE      = subdirs
SUBDIRS       = QGLViewer


Открываем обычную консоль, переходим в libQGLViewer-2.3.8, собираем по инструкции
qmake
mingw32-make


Переходим в этой же консоли в каталог с твоим примером.

Открываем pro файл
Находим строку
# win32:LIBS *= C:\code\lib\lib3ds.lib
Меняем на (исправляя путь на свой)
win32:LIBS  = d:\Work\lib3ds-1.3.0\lib\lib\lib3ds.a

находим и удаляем
win32 {
  RC_FILE = ../../qglviewer.rc
}


добавляем в 3dsViewer.cpp
#include <QKeyEvent>
#include <lib3ds/file.h>


на этом всё (наконец то, блин), компилируем и радуемся жизни :)

P.S не забываем QGLViewerd2.dll рядом с экзешником положить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snikersoman
  опции профиля:
сообщение 19.11.2010, 11:49
Сообщение #27


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 14.11.2010
Пользователь №: 2187

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все делал как написано: скачал поставил MSYS. , поправил lib3ds/file.h lib3ds/file.с эти файлы
Однако вылетает ошибка ссылк
Скорее всего из за того что я не понял
Цитата(igor_bogomolov @ 19.11.2010, 2:05) *
качаем пропатчиную версию этой библиотеки (ссылка на той же странице внизу)
Что за пропаченная библиотека и где на нее ссылка? Можно ее написать плз
А на счет
Цитата(igor_bogomolov @ 19.11.2010, 2:05) *
компилируем и радуемся жизни :)
Я уже бесконечно счастлив тк появился шанс что я не вылечу из института выполнию курсовую :D
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snikersoman
  опции профиля:
сообщение 19.11.2010, 13:18
Сообщение #28


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 14.11.2010
Пользователь №: 2187

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я покопался в виндусе mspdb80.dll находится в ...\Microsoft Visual Studio 9.0\Common7\IDE\
добавил эту dll в систем32 и каталог lib3ds -ошибка пропала . Но в консоле нефига не изменилось ссылк
Igor_bogomolov подскажи что всетаки за исправленная библиотека и где ее достать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 19.11.2010, 13:58
Сообщение #29


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Судя по картинкам у тебя не находится компилятор. Либо он не установлен, либо пути к нему не прописаны, либо ты MSYS не настроил на него (как настроить MSYS можешь посмотреть здесь.).
Qt надеюсь хоть установлена?

Цитата(Snikersoman @ 19.11.2010, 11:49) *
Что за пропаченная библиотека и где на нее ссылка? Можно ее написать плз
http://www.libqglviewer.com/src/lib3ds-1.2.0.tar.gz

Цитата
Я покопался в виндусе mspdb80.dll находится в ...\Microsoft Visual Studio 9.0\Common7\IDE\
Я собирал это компилятором MinGW. Если ты собираешь визуал студией, то тогда я тебе не помощник, этого компилятора у меня нет и не будет.

Если собирать будем все таки с MinGW, продолжаем разговор :)
mspdb80.dll тебе не понадобится.

В общем проверь еще раз свой инструментарий и еще раз повтори сборку. Checking for gcc ... и Checking for сс ... должно быть yes



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.11.2010, 14:24
Сообщение #30


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а нужен ли этот геморой с MSYS?
в 3DS лежат файлы для CMake, никакого упоминания MSYS я там не увидел
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 23:20