Platform Specific Build Instructions
Building with GCC
When the library is built using GCC it is necessary to link with the pthread
library due to how GCC implements std::thread. Failing to link to pthread will
lead to runtime exceptions (unless you're using libc++), not linker errors. See
issue #67 for more details. You
can link to pthread by adding -pthread to your linker command. Note, you can
also use -lpthread, but there are potential issues with ordering of command
line parameters if you use that.
On QNX, the pthread library is part of libc and usually included automatically
(see
pthread_create()).
There's no separate pthread library to link.
Building with Visual Studio 2015, 2017 or 2022
The shlwapi library (-lshlwapi) is required to support a call to CPUInfo which reads the registry. Either add shlwapi.lib under [ Configuration Properties > Linker > Input ], or use the following:
// Alternatively, can add libraries using linker options.
// First, Add the path to the generated library files (directory containing the `benchmark.lib`) in `[Configuration Properties > Linker > General > Additional Library Directories]`. Then do the following:
#ifdef _WIN32
#pragma comment ( lib, "Shlwapi.lib" )
#ifdef _DEBUG
#pragma comment ( lib, "benchmark.lib" )
#else
#pragma comment ( lib, "benchmark.lib" )
#endif
#endif
When using the static library, make sure to add BENCHMARK_STATIC_DEFINE under [Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions]
Can also use the graphical version of CMake:
- Open
CMake GUI. - Under
Where to build the binaries, same path as source plusbuild. - Under
CMAKE_INSTALL_PREFIX, same path as source plusinstall. - Click
Configure,Generate,Open Project. - If build fails, try deleting entire directory and starting again, or unticking options to build less.
Building with Intel 2015 Update 1 or Intel System Studio Update 4
See instructions for building with Visual Studio. Once built, right click on the solution and change the build to Intel.
Building on Solaris
If you're running benchmarks on solaris, you'll want the kstat library linked in
too (-lkstat).