mirror of https://github.com/google/benchmark.git
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
|
# 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](https://github.com/google/benchmark/issues/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()`](https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.lib_ref/topic/p/pthread_create.html)).
|
||
|
There's no separate pthread library to link.
|
||
|
|
||
|
## Building with Visual Studio 2015 or 2017
|
||
|
|
||
|
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.
|
||
|
#ifdef _WIN32
|
||
|
#pragma comment ( lib, "Shlwapi.lib" )
|
||
|
#ifdef _DEBUG
|
||
|
#pragma comment ( lib, "benchmarkd.lib" )
|
||
|
#else
|
||
|
#pragma comment ( lib, "benchmark.lib" )
|
||
|
#endif
|
||
|
#endif
|
||
|
```
|
||
|
|
||
|
Can also use the graphical version of CMake:
|
||
|
* Open `CMake GUI`.
|
||
|
* Under `Where to build the binaries`, same path as source plus `build`.
|
||
|
* Under `CMAKE_INSTALL_PREFIX`, same path as source plus `install`.
|
||
|
* 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`).
|