Проблемы компиляции в MU Online Development: что делать?

Автор oneDmitry, 2014 Март 19, 19:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlinemu разработкипроблемы с компиляцией

oneDmitry

скачал исходки, пробую компилировать их на VS 2010, выдает вот такую дрянь
1>------ Построение начато: проект: Main, Конфигурация: Release Win32 ------
1>Построение начато 19.03.2014 21:34:12.
1>InitializeBuildStatus:
1>  Создание "ReleaseMain.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1>  Camera.cpp
1>  ChatWnd.cpp
1>  Fix.cpp
1>  game_char.cpp
1>  Hook.cpp
1>  interface.cpp
1>  Items.cpp
1>  Main.cpp
1>Main.cpp(141): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestdio.h(371): см. объявление "sprintf"
1>  mob_hp_bar.cpp
1>mob_hp_bar.cpp(23): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
1>  MonsLib.cpp
1>MonsLib.cpp(34): warning C4101: dwResSize: неиспользованная локальная переменная
1>MonsLib.cpp(34): warning C4101: dwTotalSize: неиспользованная локальная переменная
1>MonsLib.cpp(34): warning C4101: dwResCount: неиспользованная локальная переменная
1>MonsLib.cpp(62): warning C4101: dwEnd: неиспользованная локальная переменная
1>MonsLib.cpp(134): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestdio.h(371): см. объявление "sprintf"
1>  mu_utils.cpp
1>  Protocol.cpp
1>  Research.cpp
1>  Sky.cpp
1>  StdAfx.cpp
1>  Struct.cpp
1>  Utils.cpp
1>  Выполнение анализа кода для C/C++...
1>Link:
1>    Создается библиотека C:UsersIMPDesktopClient1.03PSRC+HPBarReleaseMain.lib и объект C:UsersIMPDesktopClient1.03PSRC+HPBarReleaseMain.exp
1>Main.exp : warning LNK4070: директива /OUT:3DCamera.dll в .EXP отличается от имени выходного файла "C:UsersIMPDesktopClient1.03PSRC+HPBarReleaseMain.dll"; директива игнорируется
1>  Создание кода
1>c:usersimpdesktopclient1.03psrc+hpbarmain.cpp(200): warning C4731: MapCheckerCore2: регистр указателя фрейма "ebp" изменен встроенным кодом на языке ассемблера
1>  Создание кода завершено
1>Main.exp : warning LNK4070: директива /OUT:3DCamera.dll в .EXP отличается от имени выходного файла "C:UsersIMPDesktopClient1.03PSRC+HPBarReleaseMain.dll"; директива игнорируется
1>LINK : fatal error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:27.40
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Намекните в чем проблема, или не полные исходники?
С++ не шарю.

SmallHabit

Попробуй сделать полный Rebuild проекта.

HaPKoTuK

дай свой скаип  гляну через TeamWiwer

oneDmitry

#3
Проблема решена, получилось это всё из-за моей не компетенции в С++
оказалось проблема в параметре /SAFESEH, ведь он не работает на платформах x64, как раз которая у меня и стоит. Всем спасибо за отклики.
Спойлер
Если задан параметр /SAFESEH, образ создается компоновщиком только в том случае, когда
возможно создание таблицы обработчиков безопасных исключений образа. В этой таблице определено, какие
обработчики исключений в операционной системе могут использоваться для образа.
Параметр /SAFESEH может использоваться только при компоновке целевых объектов x86. Параметр /SAFESEH не
поддерживается на платформах, для которых уже определены обработчики исключений. Например, в x64 и ARM,
все обработчики исключений указаны в PDATA. Программа ML64.exe поддерживает добавление аннотаций, с
помощью которых в образ добавляются данные структурированной обработки исключений (XDATA и PDATA). Это
позволяет выполнять очистку с помощью функций ml64. Дополнительные сведения см. в разделе MASM для x64
(ml64.exe).
Если параметр /SAFESEH не задан, компоновщик создает образ с таблицей обработчиков безопасных исключений в
том случае, если все модули совместимы с функцией обработки безопасных исключений. Если такая совместимость
не обеспечивается хотя бы для одного модуля, создаваемый образ не содержит таблицы обработчиков безопасных
исключений. Если в параметре /SUBSYSTEM указан параметр WINDOWSCE или один из параметров EFI_*, образ с
таблицей обработчиков безопасных исключений не создается, поскольку ни одна из этих подсистем не
поддерживает работу с такими данными.
Если задан параметр /SAFESEH:NO, образ с таблицей не создается даже в том случае, когда все модули совместимы
с функцией обработки безопасных исключений.
В большинстве случаев образ не удается создать в связи с несовместимостью одного или нескольких входных
файлов (модулей) компоновщика с функцией обработки безопасных исключений. Чаще всего такая несовместимость
обуславливается тем, что модуль создан с помощью компилятора предыдущей версии Visual C++.
Также можно зарегистрировать функцию в качестве обработчика структурированных исключений с помощью
параметра .SAFESEH.
Нельзя задать наличие или отсутствие обработчиков безопасных исключений в существующем двоичном файле.
Сведения об обработке безопасных исключений следует добавлять во время построения.
Возможность построения таблицы обработчиков безопасных исключений зависит от использования в приложении
библиотеки времени выполнения C. Если связывание выполняется с параметром /NODEFAULTLIB, для создания
таблицы обработчиков безопасных исключений необходимо предоставить структуру загрузки конфигурации
(например структуру, представленную в исходном файле loadcfg.c библиотеки CRT), в которой содержатся все
определенные для Visual C++ записи. Например:
[свернуть]

Похожие темы (5)

Сообщений: 37
Просмотров: 22922

Сообщений: 127
Просмотров: 40388

Сообщений: 32
Просмотров: 13868