Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Флудильня (http://mangos.ytdb.ru/forumdisplay.php?f=30)
-   -   Линковка в VS (http://mangos.ytdb.ru/showthread.php?t=2043)

KiriX 06.08.2010 00:20

Линковка в VS
 
Решил тут поэкспериментировать =) Скучно стало =)
Захотелось собрать пак патчей от rsa с его же скриптами. Ядро скомпилилось нормально, а вот скрипты... Скомпилировались, но не проходит линковка объектов:
Код:

1>sc_boss_spell_worker.obj : error LNK2001: неразрешенный внешний символ ""class SpellAuraHolder * __cdecl CreateSpellAuraHolder(struct SpellEntry const *,class Unit *,class WorldObject *,class Item *)" (?CreateSpellAuraHolder@@YAPAVSpellAuraHolder@@PBUSpellEntry@@PAVUnit@@PAVWorldObject@@PAVItem@@@Z)"
или (самые простые примеры)
Код:

1>ScriptLoader.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl AddSC_boss_infinite_corruptor(void)" (?AddSC_boss_infinite_corruptor@@YAXXZ) в функции "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ)
rsa говорит, что у него на линухе компилится всё без проблем, а VS он не поддерживает и ничего под него не пишет.
С первым примером - вызывается SpellAuraHolder, но этот класс не разрешён. Каким образом и где происходит это самое разрешение.
Уже просто ради собственного интереса и развития интересует =)

LordJZ 06.08.2010 00:30

Буквально вчера, в рамках тестирования новой проги, подгонял репозиторий rsa на Win.

Рева, правда, старая совсем, где-то в районе 10190
Код:

diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h
index d77df82..c6ad856 100644
--- a/src/game/SpellAuras.h
+++ b/src/game/SpellAuras.h
@@ -197,7 +197,7 @@ typedef void(Aura::*pAuraHandler)(bool Apply, bool Real);
 class MANGOS_DLL_SPEC Aura
 {
    friend struct ReapplyAffectedPassiveAurasHelper;
-    friend Aura* CreateAura(SpellEntry const* spellproto, SpellEffectIndex eff, int32 *currentBasePoints, SpellAuraHolder *holder, Unit *target, Unit *caster, Item* castItem);
+    friend MANGOS_DLL_SPEC Aura* CreateAura(SpellEntry const* spellproto, SpellEffectIndex eff, int32 *currentBasePoints, SpellAuraHolder *holder, Unit *target, Unit *caster, Item* castItem);
 
    public:
        //aura handlers
@@ -522,6 +522,6 @@ class MANGOS_DLL_SPEC SingleEnemyTargetAura : public Aura
        uint64 m_casters_target_guid;
 };
 
-Aura* CreateAura(SpellEntry const* spellproto, SpellEffectIndex eff, int32 *currentBasePoints, SpellAuraHolder *holder, Unit *target, Unit *caster = NULL, Item* castItem = NULL);
-SpellAuraHolder* CreateSpellAuraHolder(SpellEntry const* spellproto, Unit *target, WorldObject *caster, Item *castItem = NULL);
+MANGOS_DLL_SPEC Aura* CreateAura(SpellEntry const* spellproto, SpellEffectIndex eff, int32 *currentBasePoints, SpellAuraHolder *holder, Unit *target, Unit *caster = NULL, Item* castItem = NULL);
+MANGOS_DLL_SPEC SpellAuraHolder* CreateSpellAuraHolder(SpellEntry const* spellproto, Unit *target, WorldObject *caster, Item *castItem = NULL);
 #endif
diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h
index 40dd69a..8ecc62a 100644
--- a/src/game/SpellMgr.h
+++ b/src/game/SpellMgr.h
@@ -532,7 +532,7 @@ bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group);
 DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group);
 int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellEntry const* spellproto);
 
-SpellEntry const* GetSpellEntryByDifficulty(uint32 id, Difficulty difficulty);
+MANGOS_DLL_SPEC SpellEntry const* GetSpellEntryByDifficulty(uint32 id, Difficulty difficulty);
 
 // Spell proc event related declarations (accessed using SpellMgr functions)
 enum ProcFlags


KiriX 06.08.2010 00:59

LordJZ, огромное спасибо =) Я же писал, что прога твоя и вправду полезная =)
Надо будет всё-таки скачать =)

rsa 06.08.2010 07:21

Цитата:

Сообщение от KiriX (Сообщение 12054)
rsa говорит, что у него на линухе компилится всё без проблем, а VS он не поддерживает и ничего под него не пишет.
С первым примером - вызывается SpellAuraHolder, но этот класс не разрешён. Каким образом и где происходит это самое разрешение.
Уже просто ради собственного интереса и развития интересует =)

только давайте не будем на меня катить бочку. я не "не поддерживаю", а у меня его просто нет (как и виндоуса) и я с ним работать не умею. пару раз на пробу пытался скомпилить в VC10 - все было нормально (когда проект ручками накидал), но запускать студию в qemu - тот еще геморрой...

а что до первой ошибки - просто линкуй статик.

KiriX 06.08.2010 08:27

Цитата:

Сообщение от rsa (Сообщение 12068)
только давайте не будем на меня катить бочку. я не "не поддерживаю", а у меня его просто нет (как и виндоуса) и я с ним работать не умею. пару раз на пробу пытался скомпилить в VC10 - все было нормально (когда проект ручками накидал), но запускать студию в qemu - тот еще геморрой...

а что до первой ошибки - просто линкуй статик.

Я не качу бочку, что ты =) У тебя нет винды, нет студии = в данном случае равнозначно словам о том, что не поддерживаешь. Согласись - логично. И никто тебя в этом не обвиняет - твоё право (ты меня с каким-то другим админом, наверное, путаешь =))
"просто линкуй статик." - клёва - для меня это звучит аналогично "лжгфырпдука" - пример бы - вот Лорд доходчиво объяснил =)

tempura 06.08.2010 09:44

Цитата:

Сообщение от KiriX (Сообщение 12073)
И никто тебя в этом не обвиняет - твоё право (ты меня с каким-то другим админом, наверное, путаешь =))

Когда кто-то любое упоминание о своей работе воспринимает как обвинение (неважно в чем), его лучше сторонкой обходить. А ну как начнет бросаться и кусаться?

KiriX 06.08.2010 11:00

Цитата:

Сообщение от tempura (Сообщение 12079)
Когда кто-то любое упоминание о своей работе воспринимает как обвинение (неважно в чем), его лучше сторонкой обходить. А ну как начнет бросаться и кусаться?

И тут согласен - не стоит всё как обвинение воспринимать ;)

KiriX 06.08.2010 15:46

Скомпилил... Всё что надо нашёл. Но пришлось отказаться от такого:
в скрипте используется вот что:
Код:

sWorld.GetConf()
Вот как разрешить sWorld я нифига не понял, т.к. он объявляется тут:
Код:

#define sWorld MaNGOS::Singleton<World>::Instance()

Mr.Grom 06.08.2010 17:50

rsa хотел объяснить, что для компиляции в винде надо все пути к файлам и ссылки на файлы прописывать самому ручками. :)

Работа с библиотеками динамической компоновки (DLL)

rsa 06.08.2010 17:52

Цитата:

Сообщение от KiriX (Сообщение 12073)
Я не качу бочку, что ты =) У тебя нет винды, нет студии = в данном случае равнозначно словам о том, что не поддерживаешь. Согласись - логично. И никто тебя в этом не обвиняет - твоё право (ты меня с каким-то другим админом, наверное, путаешь =))
"просто линкуй статик." - клёва - для меня это звучит аналогично "лжгфырпдука" - пример бы - вот Лорд доходчиво объяснил =)

В переводе на "вовжопский" "линкуй статик" означает "скомпилить в 1 exe-файл, без файлов .dll" В студии для этого специальные капы есть, я их даже видел ;)
А вот чтобы слинковать в динамик (маленький .exe и 2 большие .dll), нужны таблицы экспортов, которые заполняются объявлениями что показал Лорд. По умолчанию Владимир те функции не экспортирует.
В линуксях по умолчанию в отдельный модуль линкуются только скрипты, потому-то у меня все и компилируется нормально.

rsa 06.08.2010 17:53

Цитата:

Сообщение от KiriX (Сообщение 12108)
Скомпилил... Всё что надо нашёл. Но пришлось отказаться от такого:
в скрипте используется вот что:
Код:

sWorld.GetConf()
Вот как разрешить sWorld я нифига не понял, т.к. он объявляется тут:
Код:

#define sWorld MaNGOS::Singleton<World>::Instance()

Просто убери те куски, они все равно нифига не работают как хотелось...

LordJZ 07.08.2010 00:45

Да, экспортить синглтоны в SD — извращение, имхо, я у себя, когда компилил rsa, тоже убрал все использования sWorld.

KiriX 07.08.2010 10:33

Собственно, так я и поступил - закомментил эти куски =) Но всё равно интересно, как можно разрешить использовать конструкцию типа sWorld.GetConf() в скриптах SD2 - ради собственного развития =)

DiffuSer 04.10.2010 22:20

Ошибки при компиляции
 
Код:

Ошибка        1463        error LNK2001: неразрешенный внешний символ ""private: static bool MaNGOS::Singleton<class World,class MaNGOS::SingleThreaded<class World>,class MaNGOS::OperatorNew<class World>,class MaNGOS::ObjectLifeTime<class World> >::si_destroyed" (?si_destroyed@?$Singleton@VWorld@@V?$SingleThreaded@VWorld@@@MaNGOS@@V?$OperatorNew@VWorld@@@3@V?$ObjectLifeTime@VWorld@@@3@@MaNGOS@@0_NA)"        instance_trial_of_the_champion.obj        ScriptDev2
Код:

Ошибка        1469        error LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl World::~World(void)" (??1World@@QEAA@XZ) в функции "public: void * __cdecl World::`scalar deleting destructor'(unsigned int)" (??_GWorld@@QEAAPEAXI@Z)        instance_trial_of_the_champion.obj        ScriptDev2
Код:

Ошибка        1470        error LNK2001: неразрешенный внешний символ ""public: __cdecl World::~World(void)" (??1World@@QEAA@XZ)"        instance_halls_of_reflection.obj        ScriptDev2
Не могу побороть ошибки при компиляции скриптов от RSA. Знаю, что где-то нужно добавить MANGOS_DLL_SPEC, а где - не знаю. Поиск не дал результатов, в ObjectAccessor класса World нету. Подскажите, плз.

NeatElves 04.10.2010 22:37

Оно ? http://github.com/rsa/mangos/commit/...3b93924808d536

LordJZ 04.10.2010 22:46

И все-таки, у меня возникает такое чувство, что поиском кроме меня пользоваться умеет малая часть сообщества. Поэтому, закрывая уже четвертый топик на эту тему, я выложу-таки ссылку.

http://ru-mangos.ru/showthread.php?t=2043

Да блин! Это уже даже давно самим rsa поправлено! Старые исходники используете. Может пора обновиться?
KiriX

tempura 05.10.2010 08:34

Цитата:

Сообщение от LordJZ (Сообщение 14779)
И все-таки, у меня возникает такое чувство, что поиском кроме меня пользоваться умеет малая часть сообщества. Поэтому, закрывая уже четвертый топик на эту тему, я выложу-таки ссылку.

http://ru-mangos.ru/showthread.php?t=2043

Потому что клеить темы надо, а не закрывать. :)

DiffuSer 05.10.2010 16:24

Так никто и не сказал, как разрешить конфликт с sWorld, не удаляя строки.

rsa 05.10.2010 16:31

Экспортировать синглетон в скрипты. Или слинковать статически. Но проще все же удалить тем более что этот эксперимент все равно пока не работает...

trtw89 13.10.2010 09:53

Огромное спасибо Kirix за его работу
исходники rsa - ядро собираеться под вин х64 замечательно, благодаря исправлениям Kirix ошибок при компиле нет, но уже в самом конце при компоновке под х64 пишет:

дайте подсказку к способу решения данной проблемы

Limpnau 13.10.2010 15:40

trtw89, полагаю просто воспользоватся ответом rsa и удалить данный эксперимент, http://paste2.org/p/1035144

madbroths 13.10.2010 16:44

Собственно воспользовался "патчем", но теперь вылетают следующие ошибки.
Код:

1>boss_the_lich_king.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_valithria_dreamwalker.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_bronjahm.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_lord_marrowgar.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_professor_putricide.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_rotface.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_sindragosa.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_blood_queen_lanathel.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_deathbringer_saurfang.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_festergut.obj : error LNK2019: ссылка на неразрешенный внешний символ "private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z) в функции "public: void __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Xlen(void)const " (?_Xlen@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAXXZ)
1>boss_lady_deathwhisper.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_zarithian.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_faction_champions.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_northrend_beasts.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>blood_prince_council.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>icecrown_spire.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_baltharus.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_halion.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_ragefire.obj : error LNK2001: неразрешенный внешний символ ""private: void __cdecl BSWScriptedAI::_resetTimer(unsigned char)" (?_resetTimer@BSWScriptedAI@@AEAAXE@Z)"
1>boss_valithria_dreamwalker.obj : error LNK2001: неразрешенный внешний символ ""public: virtual __cdecl BSWScriptedAI::~BSWScriptedAI(void)" (??1BSWScriptedAI@@UEAA@XZ)"
1>boss_bronjahm.obj : error LNK2001: неразрешенный внешний символ ""public: virtual __cdecl BSWScriptedAI::~BSWScriptedAI(void)" (??1BSWScriptedAI@@UEAA@XZ)"
1>boss_professor_putricide.obj : error LNK2001: неразрешенный внешний символ ""public: virtual __cdecl BSWScriptedAI::~BSWScriptedAI(void)" (??1BSWScriptedAI@@UEAA@XZ)"
1>boss_rotface.obj : error LNK2001: неразрешенный внешний символ ""public: virtual __cdecl BSWScriptedAI::~BSWScriptedAI(void)" (??1BSWScriptedAI@@UEAA@XZ)"
1>boss_sindragosa.obj : error LNK2001: неразрешенный внешний символ ""public: virtual __cdecl BSWScriptedAI::~BSWScriptedAI(void)" (??1BSWScriptedAI@@UEAA@XZ)"

и так далее


rsa 13.10.2010 17:07

А с этим - в морг. Имплементация скриптов методом копирования по F5 в какой-то левый SD2 в данном случае не пройдет.

trtw89 13.10.2010 18:13

пачкаю
Код:

$ patch -p1 < rsa.patch
patching file `scripts/northrend/icecrown_citadel/frozen_halls/halls_of_reflecti
on/instance_halls_of_reflection.cpp'
Hunk #1 succeeded at 27 with fuzz 2.
Hunk #2 FAILED at 108.
1 out of 2 hunks FAILED -- saving rejects to scripts/northrend/icecrown_citadel/
frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp.rej
patching file `scripts/northrend/crusaders_coliseum/trial_of_the_champion/instan
ce_trial_of_the_champion.cpp'
Hunk #1 FAILED at 25.
Hunk #2 FAILED at 104.
2 out of 2 hunks FAILED -- saving rejects to scripts/northrend/crusaders_coliseu
m/trial_of_the_champion/instance_trial_of_the_champion.cpp.rej

при компиле ошибки соответсвенно на эти файлы, но не такие как привел madbroths
можно еще подсказку? :)

madbroths 13.10.2010 18:39

Ну вообще, я компилирую sd2 от rsa.
trtw89, пару файлов можно и руками подправить
Понимаю, что ошибки вылетают из-за моей криворукости, но

rsa 13.10.2010 20:05

trtw89, задайте этот вопрос тому кто сделал rsa.patch
я такого не делал никогда и не буду. git pull и ваши волосы...

madbroths, не надо вешать лапшу на уши, это абсолютно точно не мой SD2. скорее всего вы пытаетесь привинтить мои скрипты на SD2 от Карателя. попробуйте сделать git clone и увидите, что таких ошибок у вас не будет.

madbroths 13.10.2010 20:21

Ок, rsa. Спорить бесполезно - попробую еще раз взять ТОЧНО ваши скрипты, и перекомпилировать.

Сегодня пробовал еще раз перекомпилировать скрипты RSA, но опять тот же ворох ошибок. rsa - скачивал последний коммит.

trtw89 14.10.2010 13:53

чуть более подробно:
1. исходники rsa
2. ядро win x64 собираеться без проблем
3. в сд2 при компиле выскакивают ошибки (3 босса из ульды и boss_loken) - исправляю заменой этих файлов из чистого сд2.
4. компилю уже с 4 этими заменеными файлами и уже ошибки в самом конце при компоновке длл. (постил выше)

rsa 14.10.2010 14:49

Цитата:

Сообщение от trtw89 (Сообщение 15047)
чуть более подробно:
3. в сд2 при компиле выскакивают ошибки (3 босса из ульды и boss_loken) - исправляю заменой этих файлов из чистого сд2.

нет слов... а это ничего, что в чистом ядре они по 2кб, а у меня по 50-100кб? может проще взять чистый SD2 и не мучаться?
правка ошибки из поста выше описана еще выше.

madbroths 14.10.2010 15:50

rsa какбы намекает нам, о том что нужно нафиг выкинуть винду и визуал студио и компилировать в линухе

DiffuSer 14.10.2010 16:02

Нет, он намекает, что ошибка, связанная с локеном, исправляется добавлением double float, а ошибки с sWorld - удалением двух строк в двух файлах триала, которые получают данные из конфига сервера.

madbroths 14.10.2010 16:04

Вот пост, в котором исправляет человек ошибку с локеном

Ага! Наконец то скомпилировал без ошибок. Суть проблемы была в следующем - я не добавил файлы в проект в фильтр base.
RSA, ты не против если я создам форк твоих скриптов и подгоню их под визуал студио?

29.11.2010 20:58

сообственно все ошибки при компили под винду ScriptDev2 с форка Rsa исправил столкнулся с затруднением я просто не спец особо но:
PHP код:

Ошибка    1    error LNK2019ссылка на неразрешенный внешний символ "void __cdecl AddSC_oculus(void)" (?AddSC_oculus@@YAXXZв функции "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ)    ScriptLoader.obj 

исправить то я знаю как ее вот тока файлика instance_oculus.cpp найти не могу мож он и не нужен а где то еще исправляется?

Sid 30.11.2010 00:12

Скорей всего void AddSC_oculus(); определен в загрузчике, но его нет на самом деле в исходниках. Закоментируй его в ScriptLoader.cpp или поищи в исходниках, если хочешь знать точнее.

Warlord123 30.11.2010 11:41

Все в исходниках есть . Добавьте файл oculus.cpp в проект.

30.11.2010 16:34

да я на все плюнул и собрал проэкт по новой ваще не каких проблем нет Rsa спасибо за твои работы:yes3:

Slavich 10.12.2010 12:53

Доброе время суток,

Не знал где отписать, и вроде в теме нашел что пробовали компилить исходники от rsa
Сильно не пинайте я начинающий :pardon:
1 исходники от rsa (10.12.2010)
2 пробовал VS 2008 и VS2010

Ядро компилится в порядке без каких либо проблем, но вот со скриптами:
хотя есть несколько предупреждений но они не столь важны:
Код:

..\..\src\game\Level3.cpp(4794) : warning C4018: '>' : signed/unsigned mismatch
..\..\src\game\Level3.cpp(4842) : warning C4018: '>' : signed/unsigned mismatch

..\..\src\game\Pet.cpp(3153) : warning C4018: '>' : signed/unsigned mismatch

..\..\src\game\AntiCheat.cpp(355) : warning C4018: '>' : signed/unsigned mismatch
..\mangos\src\game\anticheat.cpp(722) : warning C4715: 'AntiCheat::CheckSpellOndeath' : not all control paths return a value

1 попытка компилирования
предупреждение:
Код:


..\scripts\northrend\icecrown_citadel\frozen_halls\forge_of_souls\instance_forge_of_souls.cpp(77) : warning C4060: switch statement contains no 'case' or 'default' labels

..\scripts\northrend\icecrown_citadel\frozen_halls\halls_of_reflection\halls_of_reflection.cpp(955) : warning C4018: '<=' : signed/unsigned mismatch

..\scripts\northrend\icecrown_citadel\frozen_halls\pit_of_saron\boss_forgemaster_gafrost.cpp(149) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\scripts\northrend\icecrown_citadel\frozen_halls\pit_of_saron\boss_forgemaster_gafrost.cpp(149) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\scripts\northrend\icecrown_citadel\frozen_halls\pit_of_saron\boss_forgemaster_gafrost.cpp(149) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\scripts\northrend\icecrown_citadel\frozen_halls\pit_of_saron\boss_forgemaster_gafrost.cpp(159) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\scripts\northrend\icecrown_citadel\frozen_halls\pit_of_saron\boss_forgemaster_gafrost.cpp(159) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\scripts\northrend\icecrown_citadel\frozen_halls\pit_of_saron\boss_forgemaster_gafrost.cpp(159) : warning C4305: 'argument' : truncation from 'double' to 'float'

..\scripts\northrend\crusaders_coliseum\trial_of_the_champion\boss_grand_champions.cpp(554) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\scripts\northrend\crusaders_coliseum\trial_of_the_champion\boss_grand_champions.cpp(558) : warning C4305: 'argument' : truncation from 'double' to 'float'

..\mangos\src\bindings\scriptdev2\scripts\northrend\ulduar\ulduar\instance_ulduar.cpp(1093) : warning C4715: 'instance_ulduar::CheckConditionCriteriaMeet' : not all control paths return a value

..\scripts\eastern_kingdoms\scarlet_enclave\ebon_hold.cpp(1209) : warning C4018: '<' : signed/unsigned mismatch
..\scripts\eastern_kingdoms\scarlet_enclave\ebon_hold.cpp(1224) : warning C4018: '<' : signed/unsigned mismatch

ошибки:
Код:

c1xx : fatal error C1083: Cannot open source file: '..\scripts\northrend\ulduar\ulduar\boss_xt_002.cpp': No such file or directory

c1xx : fatal error C1083: Cannot open source file: '..\scripts\northrend\ulduar\ulduar\boss_general_vezax.cpp': No such file or directory

c1xx : fatal error C1083: Cannot open source file: '..\scripts\northrend\ulduar\ulduar\boss_flame_leviathan.cpp': No such file or directory

c1xx : fatal error C1083: Cannot open source file: '..\scripts\northrend\ulduar\ulduar\assembly_of_iron.cpp': No such file or directory

..\scripts\northrend\ulduar\halls_of_lightning\boss_loken.cpp(147) : error C3861: 'round': identifier not found

исправление ошибок:
первые 3 ошибок исправляются 2 способами:
1 способ заходим в ..\scripts\northrend\ulduar\ulduar\ и видим что они вроде присутствуют но переименованы, кроме assembly_of_iron.cpp:
boss_xt_002.cpp -> boss_xt002.cpp
boss_general_vezax.cpp -> boss_vezax.cpp
boss_flame_leviathan.cpp -> boss_leviathan.cpp

assembly_of_iron.cpp вообще нету

2 способ заходим в фаил 90ScriptDev2.vcproj и находим вот эти строчки
Код:

<File
RelativePath="..\scripts\northrend\ulduar\ulduar\assembly_of_iron.cpp"
>
</File>
*******************************************************
<File
RelativePath="..\scripts\northrend\ulduar\ulduar\boss_flame_leviathan.cpp"
>
</File>
*******************************************************
<File
RelativePath="..\scripts\northrend\ulduar\ulduar\boss_general_vezax.cpp"
>
</File>
*******************************************************
<File
RelativePath="..\scripts\northrend\ulduar\ulduar\boss_xt_002.cpp"
>
</File>

исправление:
Код:

<File
RelativePath="..\scripts\northrend\ulduar\ulduar\assembly_of_iron.cpp"
>
</File>
- удаляем
*******************************************************
<File
RelativePath="..\scripts\northrend\ulduar\ulduar\boss_leviathan.cpp" - переименовываем
>
</File> -
*******************************************************
<File
RelativePath="..\scripts\northrend\ulduar\ulduar\boss_vezax.cpp" - переименовываем
>
</File>
*******************************************************
<File
RelativePath="..\scripts\northrend\ulduar\ulduar\boss_xt002.cpp" - переименовываем
>
</File>

последняя ошибка:
Код:

..\scripts\northrend\ulduar\halls_of_lightning\boss_loken.cpp(147) : error C3861: 'round': identifier not found
исправляет вот это Murderer
Код:

        double round(double value) {
                return floor(value + 0.5);
                }

ну вроде все, начинаем снова компилить, попытка номер 2 :mda:
вот тут и не знаю что делать:
Код:

  Creating library ..\..\..\..\bin\win32_release/mangosscript.lib and object ..\..\..\..\bin\win32_release/mangosscript.exp
ebon_hold.obj : error LNK2019: unresolved external symbol "public: static class Player * __cdecl ObjectAccessor::FindPlayer(class ObjectGuid)" (?FindPlayer@ObjectAccessor@@SAPAVPlayer@@VObjectGuid@@@Z) referenced in function "public: virtual void __thiscall npc_eye_of_acherusAI::JustDied(class Unit *)" (?JustDied@npc_eye_of_acherusAI@@UAEXPAVUnit@@@Z)
instance_trial_of_the_champion.obj : error LNK2001: unresolved external symbol "private: static bool MaNGOS::Singleton<class World,class MaNGOS::SingleThreaded<class World>,class MaNGOS::OperatorNew<class World>,class MaNGOS::ObjectLifeTime<class World> >::si_destroyed" (?si_destroyed@?$Singleton@VWorld@@V?$SingleThreaded@VWorld@@@MaNGOS@@V?$OperatorNew@VWorld@@@3@V?$ObjectLifeTime@VWorld@@@3@@MaNGOS@@0_NA)
instance_trial_of_the_champion.obj : error LNK2001: unresolved external symbol "private: static class World * MaNGOS::Singleton<class World,class MaNGOS::SingleThreaded<class World>,class MaNGOS::OperatorNew<class World>,class MaNGOS::ObjectLifeTime<class World> >::si_instance" (?si_instance@?$Singleton@VWorld@@V?$SingleThreaded@VWorld@@@MaNGOS@@V?$OperatorNew@VWorld@@@3@V?$ObjectLifeTime@VWorld@@@3@@MaNGOS@@0PAVWorld@@A)
instance_trial_of_the_champion.obj : error LNK2019: unresolved external symbol "public: __thiscall World::World(void)" (??0World@@QAE@XZ) referenced in function "public: static class World * __cdecl MaNGOS::OperatorNew<class World>::Create(void)" (?Create@?$OperatorNew@VWorld@@@MaNGOS@@SAPAVWorld@@XZ)
instance_trial_of_the_champion.obj : error LNK2019: unresolved external symbol "public: __thiscall World::~World(void)" (??1World@@QAE@XZ) referenced in function "public: void * __thiscall World::`scalar deleting destructor'(unsigned int)" (??_GWorld@@QAEPAXI@Z)
ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_oculus(void)" (?AddSC_oculus@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ)
..\..\..\..\bin\win32_release/mangosscript.dll : fatal error LNK1120: 6 unresolved externals
Build log was saved at "file://e:\mangos\src\bindings\scriptdev2\VC90\ScriptDev2__Win32_Release\BuildLog.htm"
ScriptDev2 - 7 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

зашел к rsa, у кого то уже подобная ошибка вышла, Venom писал ...

может кто что подскажет где капать и даст совет

10.12.2010 13:42

вот же тут написан ответ читаейте внимательнее форум http://paste2.org/p/1035144

Slavich 10.12.2010 13:43

Цитата:

Сообщение от zamalaev (Сообщение 17055)
вот же тут написан ответ читаейте внимательнее форум http://paste2.org/p/1035144

вроде вот есть решение, увидел после ответ:
http://paste2.org/p/1133470

но все же спасибо

http://paste2.org/p/1133470 правки помогли исправит проблему


Текущее время: 22:46. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS