Ogre-next with Visual Studio 2019, SDL Memset, CL.exe error

Follw the instructions from:

https://ogrecave.github.io/ogre-next/api/2.1/_setting_up_ogre_windows.html

Btw, the screenshots and the instructions dont' really match, it is a little bit confusing.

So before we can build ogre,we need to build dependencies. For me, SL2 complained missing memset and some stuff,it's actually a missing dll, found this on the forum which solved my problem.

2.SDL2
And then SDL2 throws some external symbol not found errors at link time for debug builds.
I am sure there is a better way to this but i solved it by adding the lines below in ogredeps_repo_dirsrcSDL2CMakeLists.txt

CODE: SELECT ALL

if(MSVC)
    list(APPEND EXTRA_LIBS vcruntimed ucrtd msvcrtd)
endif()

At around line 1250 in if(SDL_SHARED) block right before

CODE: SELECT ALL

set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA_LDFLAGS})

lines.

 

Depedencies are fine now.


Then i generated the ogre solution.

When i compile, got this issue

1>INTERNAL COMPILER ERROR in 'C:Program Files (x86)Microsoft Visual Studio2019ProfessionalVCToolsMSVC14.24.28314inHostX64x64CL.exe'
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
1>OgreMemoryNedPooling.cpp
1>cl : command line error D8040: error creating or communicating with child process
1>Done building project "OgreMain.vcxproj" -- FAILED.

Something to do with the compiler.

If we disable the precompiled header, it can compile.

  1. Open your project, then select “Project” > “appname Properties…“.
  2. Expand “Configuration Properties” > “C/C++” > “Precompiled Headers“.
  3. Set “Precompiled Header” to “Not Using Precompiled Headers“.

Seems okay now;)

 ========== Build: 16 succeeded, 0 failed, 4 up-to-date, 2 skipped ==========

 

原文地址:https://www.cnblogs.com/antai/p/12825128.html