forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Code::Blocks и Xors3d (C++) (http://forum.boolean.name/showthread.php?t=16078)

impersonalis 23.12.2011 15:58

Code::Blocks и Xors3d (C++)
 
Если пользователи MS Visual Studio (не канонической - 6-ой, а жутковатой 7 и выше) получают более-менее "решение из коробки", то почитателям Code::Blocks необходимо сделать больше телодвижений.
Ситуацию усложняет устаревший файл ReadMe.txt, поэтому, постарался подробно расписать процесс шаг-за-шагом.
:) 1 ) Извлекаете содержимое поставки (zip-архива) в некоторую директорию (пусть это будет XORS3D)
:) 2 ) Запускаете C::B. Рассмотрим пример сборки семпла.
:) 3 ) Выбираете File->Import Project->MS Visual Studio project...
:) 4 ) Допустим XORS3D\Samples\Source\C++\animtex выбираем там *.proj-файл
:ok: 5 ) Указываем компилятор. Пусть GNU GCC
:ok: 6 ) Конфигурации (логично выбрать обе)
:crazy: 7 ) Заходим в Project -> Build Options (слева выбираем весь проект, а не отдельные конфигурации) переходим на вкладку Search Directories вкладка Compiler жмём Add указываем XORS3D\headers\CPP\inc в строке ввода и добавляем путь.
:stop: 8 ) Дописываем #include <stdio.h>, чтобы устранить ошибку error: 'sprintf' was not declared in this scope
:4to: 9 ) Далее получаем ошибку ld.exe||cannot find -lxors3d|
И это несмотря на то, что *.lib-файл добавлен штатными средствами интерфейса IDE [этот шаг я опустил, т.к. он ни к чему не приводит]. В интернетах об этом пишут много и размазано. Половина тредов кончается ни чем, часть завершается постом "внезапно стало работать" или "скачал новую версию библиотеки - теперь пашет".
Конечно же, можно реализовать паллиатив (аналогично поступает, например, пользователь тут http://yantayga.livejournal.com/24323.html "Вышел свежий Haskell Platform")
Берём и тупо копируем
XORS3D\headers\CPP\lib *.lib-файлы в \Program Files\CodeBlocks\MinGW\lib. IDE можно не перезапускать.Проект должен успешно собраться.

9 ) Заходим в Project -> Build Options вкладка Linker settings
9.1 ) Выбираем конфигурацию Debug (дерево в левой части окна)
9.2 ) Выбираем все файлы в списке Link libraries (зажав ctrl) и нажимаем Delete
9.3 ) Выбираем конфигурацию Release (дерево в левой части окна). IDE запросит сохранение изменений - соглашаемся.
9.4 ) Выбираем все файлы в списке Link libraries (зажав ctrl) и нажимаем Delete
9.5 ) Выбираем конфигурацию общую конфигурацию (корень дерева конфигураций). IDE запросит сохранение изменений - соглашаемся.
9.6 ) Жмём Add и указываем в открывшемся диалоге файл XORS3D\headers\CPP\lib\Xors3d.lib. Применяем.
9.7 ) Жмём Add и указываем в открывшемся диалоге файл \Program Files\CodeBlocks\MinGW\lib\libwinmm.a (или просто libwinmm.a). Применяем.
9.8 ) Закрываем диалог Project build options через Ok
:) 10 ) Для запуска примера необходимо скопировать файл Xors3d.dll из XORS3D\dlls


Цель поста - информировать пользователей во избежание глупых вопросов в техподдержку.
Теги: Xors3D Code::Blocks error: 'sprintf' was not declared in this scope ld.exe||cannot find -lxors3d| MinGW dlls почему я идиот паллиатив приколы от код::блокс не видит либ скачать каннот фаунд без смс торрент бесплатно без ограничений и регистрации

А если у меня XP SP3?
Действительно ли все проблемы в моей криворукости?
Создаём свой проект

Upd: dsd Оказался прав. Проблема у меня была в "удачном" стечении обстоятельств: привычная MSVC++ сама прописывает линкеру файл экспорта, если тот был добавлен в проект (подобно любому файлу, например *.cpp) или подключён прагмой. Собственно первый вариант я и выбрал. Затем, в диалоге, убедился что линкер его проглотил (а на самом деле - только требовал его). А тут ещё гугл подбросил "единомышленников".

dsd 23.12.2011 16:24

Ответ: Code::Blocks и Xors3d (C++)
 
Наверно не в тему, но я просто сделал в:
settings->compiler and debugger->linker settings->add... где добавил *.lib хорса. Далее достаточно в любом проекте заинклюдить хорсовский xors3d.h, ну и длл хорсовскую рядом с генерируемым экзешником положить и все ок. Практически тот же блитц3д, только лучше. А sprintf() и так замечательно работает у меня почему то :).
Код:

#include "xors3d.h"
#include <stdio.h>
#include <math.h>


impersonalis 23.12.2011 17:13

Ответ: Code::Blocks и Xors3d (C++)
 
Цитата:

Сообщение от dsd (Сообщение 215026)
Наверно не в тему, но я просто сделал в:
settings->compiler and debugger->linker settings->add... где добавил *.lib хорса. Далее достаточно в любом проекте заинклюдить хорсовский xors3d.h, ну и длл хорсовскую рядом с генерируемым экзешником положить и все ок. Практически тот же блитц3д, только лучше. А sprintf() и так замечательно работает у меня почему то :).
Код:

#include "xors3d.h"
#include <stdio.h>
#include <math.h>


Да - либ.-файл я подключал штатаными средвтами - плодов это не принесло. Хотя директории все латинцей и без пробелов. (м\б дело в версии компилятора? разных дисках К::Б и проекта? х3)
Ну а про спринтф - ты привёл решение, указанное мной.

dsd 23.12.2011 18:32

Ответ: Code::Blocks и Xors3d (C++)
 
дело не в кодеблокс и не в имени папки, т.к. у меня либы лежат в c:\хотфикс\ и нормально все. Скорее дело в винде или файловой системе диска.

impersonalis 23.12.2011 22:23

Ответ: Code::Blocks и Xors3d (C++)
 
http://forum.boolean.name/showthread.php?t=16080

ABTOMAT 23.12.2011 23:24

Ответ: Code::Blocks и Xors3d (C++)
 
Эх, года бы 2 назад такую-то инструкцию!

impersonalis 27.12.2011 16:08

Ответ: Code::Blocks и Xors3d (C++)
 
Обновил первый пост


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

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