FlatBuffers C++ Minimum Version - flatbuffers

The FlatBuffers project requires a C++11 compiler to build. But what are the version requirements for the C++ header file generated by flatc?

They are no different. The generated headers include flatbuffers.h, which depends on C++11.
That said, the it doesn't require the full C++11 feature set, it will build on compilers as old as Visual Studio 2010 and GCC 4.8.2.

I am using G++ 4.8.1. You just need to set -std=c++11 to get the features you need.

Related

How to set the default MSVC compiler version when multiple versions exist for same toolset version

I have multiple versions of MSVC C++ build tools for the same toolset(v142) installed using Visual studio build tools. How can I set the default or preferred version of the MSVC compiler. Is there a registry or environment variable for setting this in Windows or with Cmake?
Cmake picks up the latest version and I want it to use older version for some builds. CMake does seem to have a -T parameter for toolset but in my case both versions are for toolset v142.
Please note that I do not have or intend to use Visual Studio IDE for this since I am dealing with command line builds for CI purposes.
You can pass the required version via CLI:
$ cmake ... -T v142,version=14.24
See also CMAKE_GENERATOR_TOOLSET variable.

Eigen3 cannot find GLUT if I use freeglut 3.2.1?

Environment
Windows 10 version 1903, 64bit
Eigen 3.3.7
freeglut 3.2.1
Visual Studio 2015 Update 3
When I run the following cmake command to build Eigen3:
cmake -DCMAKE_CONFIGURATION_TYPES=Release -DPKG_CONFIG_EXECUTABLE=D:\3rd-parties\pkg-config.exe -DGLUT_glut_LIBRARY=D:\3rd-parties\freeglut-3.2.1\install\lib\freeglut.lib -G"Visual Studio 14 2015 Win64" ..
, Eigen3 always complains:
-- Could NOT find GLUT (missing: GLUT_glut_LIBRARY)
even though I have correctly set the GLUT_glut_LIBRARY variable. I'm sure freeglut 3.2.1 was correctly built under Release mode in VS2015 and the path is specified without any problem. So, how to have Eigen3 work with freeglut, or Eigen3 does not work with freeglut at all, but only with the old legacy GLUT? Besides, does Eigen use or depend on GLUT? If not, I may just safely ignore this error. Thank you.

VS2017 Setting up platform-specific packages

In previous versions of VS2017, we were able to use nuspec to specify platform specific dlls, e.g., Test.dll and Test.Net45.dll for Net45, and TEst.dll and Test.iOS.dll for iOS. VS2017 provides a Package tab which allows specifying versions, descriptions, etc. but there does not seem to be a way to specify platform. I do see Configuration: N/A and Platform: N/A but these are probably not relevant. How can this be done?
Incidentally, multi-targeting would not work, because Test.dll has to stay PCL (netstandard13).
We use msbuild pack in TeamCity.

why specifying architecture needs to be done in cmake for multi-configuration generators

I understand that CMAKE_BUILD_TYPE only works for single-configuration generators like Unix Makefiles. There are also multi-configuration generators like Visual Studio or Xcode where CMAKE_BUILD_TYPE does not works. (see this and this question for further info). I've generated Visual Studio 2013 x86 project with cmake-gui for libharu and there is not possible to switch from win32 to x64 in Visual Studio. I'm wondering why in multi-configurations it is need to specify architecture (x86 or x64) in cmake? Why it is not possible in Visual Studio directly? Is there some limitation or benefit or something that I should be aware of?
Thanks
Because this switch between 32 and 64 bit is not available in all environments cmake follows the philosophy to use out-of-source builds and have each compiler in their own directory. So a 32 bit and a 64 bit build can be seen as a a different compilation environment so they each generate their own folders.
So while this is a cmake limitation it is also intentional.
This answer also mentions this: https://stackoverflow.com/a/5359191/152359

C++ Builder XE not linking all runtime DLLs

When I compile my project with the option to exclude runtime packages (to do a static library linking) everything goes fine.
But when I run my application on a C++ Builder "virgin" (no packages installed) it won't start and shows the following error:
The program can't start because CC32110MT.DLL is missing from your computer...
The CC32110MT.DLL is signed as a Embarcadero RAD Studio C++ Multi-thread RTL (WIN/VCL MT)
Any ideas of how to fix this other than copy the DLL to the target system?
In C++Builder, you have to disable both the Dynamic RTL and Runtime Packages in order to produce a fully statically-linked executable (in Delphi, there is no Dynamic RTL). You have only disabled the latter, but not the former yet.