crowsite/libs/crow/docs/getting_started/setup/linux.md

3.6 KiB

Here's how you can install Crow on your favorite GNU/Linux distro.

Getting Crow

Requirements

  • C++ compiler with at least C++11 support.

  • Asio development headers (1.10.9 or later).

  • (optional) ZLib for HTTP Compression.

  • (optional) OpenSSL for HTTPS support.

  • (optional) CMake for building tests, examples, and/or installing Crow.

  • (optional) Python3 to build tests and/or examples. !!! note

    Crow's CI uses g++-9.4 and clang-10.0 running on AMD64 (x86_64) and ARM64v8 architectures.



Using a package Manager

You can install Crow on GNU/Linux as a pre-made package === "Debian/Ubuntu"

Simply download Crow's `.deb` file from the [release section](https://github.com/CrowCpp/Crow/releases/latest) and Install it.

=== "Arch"

Crow is available for Arch based distros through the AUR package `crow`.



Release package

Crow provides an archive containing the framework and CMake files, just copy the include folder to /usr/local/include and lib folder to /usr/local/lib.

You can also download the crow_all.h file and simply include that into your project.

Installing from source

Using CMake

  1. Download Crow's source code (Either through Github's UI or by using
    git clone https://github.com/CrowCpp/Crow.git).
  2. Run mkdir build inside of crow's source directory.
  3. Navigate to the new "build" directory and run the following:
    cmake .. -DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF
  4. Run make install.

!!! note

You can ignore `-DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF` if you want to build the Examples and Unit Tests.

!!! note

While building you can set the `CROW_FEATURES` variable (as a `;` separated list). You can use an argument such as `-DCROW_FEATURES="ssl;compression"`.

!!! note

You can uninstall Crow at a later time using `make uninstall`.

#### Manually Crow can be installed manually on your Linux computer. ##### Multiple header files === "Project Only"
Copy Crow's `include` directory to your project's `include` directory.

=== "System wide"

Copy Crow's `include` directory to the `/usr/local/include` directory.
Single header (crow_all.h)

!!! warning

`crow_all.h` is recommended only for small, possibly single source file projects, and ideally should not be installed on your system.

navigate to the scripts directory and run ./merge_all.py ../include crow_all.h. This will generate a crow_all.h file that you can use in your projects. !!! note

You can also include or exclude middlewares from your `crow_all.h` by using `-i` or `-e` followed by the middleware header file names separated by a comma (e.g. `merge_all.py ../include crow_all.h -e cookie_parser` to exclude the cookie parser middleware).

Compiling your project

Using CMake

In order to get your CMake project to work with Crow, all you need are the following lines in your CMakeLists.txt:

find_package(Crow)
target_link_libraries(your_project PUBLIC Crow::Crow)

From there CMake should handle compiling and linking your project. !!! note

For optional features like HTTP Compression or HTTPS you can set the `CROW_FEATURES` variable using lines such as `set(CROW_FEATURES "ssl;compression")`, `set(CROW_FEATURES ssl compression)`, or `set(CROW_FEATURES ssl)`.

Directly using a compiler

All you need to do is run the following command:

g++ main.cpp -lpthread

You can use arguments like -DCROW_ENABLE_DEBUG, -DCROW_ENABLE_COMPRESSION -lz for HTTP Compression, or -DCROW_ENABLE_SSL -lssl for HTTPS support, or even replace g++ with clang++.