Перейти к содержанию

OpenMW не собирается на macOS Catalina (string.h)


Set440

Рекомендуемые сообщения

Я очень хочу наложить на сорцы патчи резиста магии (он имбалансный), но мне потом надо собрать движок.

 

Я поставил все зависимости: Пакет Qt 5.5.1 (не из brew), XCode+CommandLineTools, все сборочные утилиты из HomeBrew

 

Выкачал OpenMW-deps, поправил пути в CMake Qt (на OpenGL+AGL)

 

CMake отработал правильно:

export PATH_TO_QT_INSTALLATION="/Users/seth/Qt5.5.1/5.5/clang_64/lib/cmake/"
export PATH_TO_DEPENDENCIES_DIR=/Users/seth/openmw-deps

cmake \
    -D CMAKE_PREFIX_PATH="$PATH_TO_DEPENDENCIES_DIR;$PATH_TO_QT_INSTALLATION" \
    -D SDL2_INCLUDE_DIR="$PATH_TO_DEPENDENCIES_DIR/include/SDL2" \
    -D OPENGL_INCLUDE_DIR="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers" \
    -D OPENAL_INCLUDE_DIR="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Versions/A/Headers" \
    -D CMAKE_OSX_SYSROOT="$MAC_OS_VERSION" \
    -D DESIRED_QT_VERSION=5 \
    -D CMAKE_BUILD_TYPE=Debug \
    -D BUILD_MYGUI_PLUGIN=FALSE \
    -G"Unix Makefiles" \
    ../openmw/

Но Make завершается с ошибкой, так-как не может найти string.h в XCode-CommandLineTools

build make
[  0%] Building CXX object extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:6:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:642:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:61:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string.h:61:15: fatal error:
      'string.h' file not found
#include_next <string.h>
              ^~~~~~~~~~
1 error generated.
make[2]: *** [extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o] Error 1
make[1]: *** [extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/all] Error 2
make: *** [all] Error 2

Может кто подскажет, где копать?

Ссылка на комментарий
Поделиться на другие сайты

 

Спасибо, поправил, залинковал... теперь жестоко ругается на математику:

build make
[  0%] Building CXX object extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:11:
In file included from /Users/seth/openmw-deps/include/osg/Texture2D:17:
In file included from /Users/seth/openmw-deps/include/osg/Texture:18:
In file included from /Users/seth/openmw-deps/include/osg/Image:17:
In file included from /Users/seth/openmw-deps/include/osg/BufferObject:21:
In file included from /Users/seth/openmw-deps/include/osg/buffered_value:17:
In file included from /Users/seth/openmw-deps/include/osg/DisplaySettings:18:
In file included from /Users/seth/openmw-deps/include/osg/Matrixd:18:
In file included from /Users/seth/openmw-deps/include/osg/Vec3d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2f:17:
In file included from /Users/seth/openmw-deps/include/osg/Math:17:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:314:9: error:
      no member named 'signbit' in the global namespace
using ::signbit;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:315:9: error:
      no member named 'fpclassify' in the global namespace
using ::fpclassify;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:316:9: error:
      no member named 'isfinite' in the global namespace; did you mean 'finite'?
using ::isfinite;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/math.h:749:12: note:
      'finite' declared here
extern int finite(double)
           ^
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:11:
In file included from /Users/seth/openmw-deps/include/osg/Texture2D:17:
In file included from /Users/seth/openmw-deps/include/osg/Texture:18:
In file included from /Users/seth/openmw-deps/include/osg/Image:17:
In file included from /Users/seth/openmw-deps/include/osg/BufferObject:21:
In file included from /Users/seth/openmw-deps/include/osg/buffered_value:17:
In file included from /Users/seth/openmw-deps/include/osg/DisplaySettings:18:
In file included from /Users/seth/openmw-deps/include/osg/Matrixd:18:
In file included from /Users/seth/openmw-deps/include/osg/Vec3d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2f:17:
In file included from /Users/seth/openmw-deps/include/osg/Math:17:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:317:9: error:
      no member named 'isinf' in the global namespace
using ::isinf;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:318:9: error:
      no member named 'isnan' in the global namespace
using ::isnan;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:319:9: error:
      no member named 'isnormal' in the global namespace
using ::isnormal;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:320:7: error:
      no member named 'isgreater' in the global namespace; did you mean
      '::std::greater'?
using ::isgreater;
      ^~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/functional:728:29: note:
      '::std::greater' declared here
struct _LIBCPP_TEMPLATE_VIS greater : binary_function<_Tp, _Tp, bool>
                            ^
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:11:
In file included from /Users/seth/openmw-deps/include/osg/Texture2D:17:
In file included from /Users/seth/openmw-deps/include/osg/Texture:18:
In file included from /Users/seth/openmw-deps/include/osg/Image:17:
In file included from /Users/seth/openmw-deps/include/osg/BufferObject:21:
In file included from /Users/seth/openmw-deps/include/osg/buffered_value:17:
In file included from /Users/seth/openmw-deps/include/osg/DisplaySettings:18:
In file included from /Users/seth/openmw-deps/include/osg/Matrixd:18:
In file included from /Users/seth/openmw-deps/include/osg/Vec3d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2f:17:
In file included from /Users/seth/openmw-deps/include/osg/Math:17:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:321:7: error:
      no member named 'isgreaterequal' in the global namespace; did you mean
      '::std::greater_equal'?
using ::isgreaterequal;
      ^~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/functional:757:29: note:
      '::std::greater_equal' declared here
struct _LIBCPP_TEMPLATE_VIS greater_equal : binary_function<_Tp, _Tp, bool>
                            ^
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:11:
In file included from /Users/seth/openmw-deps/include/osg/Texture2D:17:
In file included from /Users/seth/openmw-deps/include/osg/Texture:18:
In file included from /Users/seth/openmw-deps/include/osg/Image:17:
In file included from /Users/seth/openmw-deps/include/osg/BufferObject:21:
In file included from /Users/seth/openmw-deps/include/osg/buffered_value:17:
In file included from /Users/seth/openmw-deps/include/osg/DisplaySettings:18:
In file included from /Users/seth/openmw-deps/include/osg/Matrixd:18:
In file included from /Users/seth/openmw-deps/include/osg/Vec3d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2f:17:
In file included from /Users/seth/openmw-deps/include/osg/Math:17:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:322:9: error:
      no member named 'isless' in the global namespace
using ::isless;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:323:9: error:
      no member named 'islessequal' in the global namespace
using ::islessequal;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:324:9: error:
      no member named 'islessgreater' in the global namespace
using ::islessgreater;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:325:9: error:
      no member named 'isunordered' in the global namespace
using ::isunordered;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cmath:326:9: error:
      no member named 'isunordered' in the global namespace
using ::isunordered;
      ~~^
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:11:
In file included from /Users/seth/openmw-deps/include/osg/Texture2D:17:
In file included from /Users/seth/openmw-deps/include/osg/Texture:18:
In file included from /Users/seth/openmw-deps/include/osg/Image:17:
In file included from /Users/seth/openmw-deps/include/osg/BufferObject:21:
In file included from /Users/seth/openmw-deps/include/osg/buffered_value:17:
In file included from /Users/seth/openmw-deps/include/osg/DisplaySettings:18:
In file included from /Users/seth/openmw-deps/include/osg/Matrixd:18:
In file included from /Users/seth/openmw-deps/include/osg/Vec3d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2f:17:
/Users/seth/openmw-deps/include/osg/Math:114:46: error: expected unqualified-id
    inline bool isNaN(float v) { return std::isnan(v); }
                                             ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/math.h:165:5: note:
      expanded from macro 'isnan'
    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
    ^
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.cpp:1:
In file included from /Users/seth/openmw/extern/osg-ffmpeg-videoplayer/videoplayer.hpp:11:
In file included from /Users/seth/openmw-deps/include/osg/Texture2D:17:
In file included from /Users/seth/openmw-deps/include/osg/Texture:18:
In file included from /Users/seth/openmw-deps/include/osg/Image:17:
In file included from /Users/seth/openmw-deps/include/osg/BufferObject:21:
In file included from /Users/seth/openmw-deps/include/osg/buffered_value:17:
In file included from /Users/seth/openmw-deps/include/osg/DisplaySettings:18:
In file included from /Users/seth/openmw-deps/include/osg/Matrixd:18:
In file included from /Users/seth/openmw-deps/include/osg/Vec3d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2d:17:
In file included from /Users/seth/openmw-deps/include/osg/Vec2f:17:
/Users/seth/openmw-deps/include/osg/Math:115:47: error: expected unqualified-id
    inline bool isNaN(double v) { return std::isnan(v); }
                                              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/math.h:165:5: note:
      expanded from macro 'isnan'
    ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
    ^
15 errors generated.
make[2]: *** [extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o] Error 1
make[1]: *** [extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/all] Error 2
make: *** [all] Error 2
Ссылка на комментарий
Поделиться на другие сайты

 

That's not good. The code is trying to do using ::signbit; and the symbol isn't in the global namespace, it is in std:: namespace. I presume likewise with the others (I didn't chase them down). – Eljay

 

Будет ли толк, если везде переписать using?

 

====

В общем, как я понял, openmw-deps-mac нужно адаптировать под каталину

Изменено пользователем Set440
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...