NLopt is a library for nonlinear local and global optimization, for functions with and without gradient information. It is designed as a simple, unified interface and packaging of several free/open-source nonlinear optimization libraries.
The latest release can be downloaded from the NLopt releases page on Github, and the NLopt manual is hosted on readthedocs.
To build it refer to the installation instructions.
To use in your C/C++ programs see the C reference manual.
There are also interfaces for C++, Fortran, Python, Matlab or GNU Octave, OCaml, GNU Guile, GNU R, Lua, Perl, Rust, Ruby, and Julia. Interfaces for other languages may be added in the future.