#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-491

### Chapter 13. Programming

- Prev

  Programming

- Next

  Cbindgen-0.29.2

- Up
- Home

# cargo-c-0.10.21

## Introduction to cargo-c

The cargo-c package creates a cargo subcommand to build and install C-ABI compatible dynamic and static libraries.

### Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

### Package Information

- Download (HTTP): https://github.com/lu-zero/cargo-c/archive/v0.10.21/cargo-c-0.10.21.tar.gz

- Download MD5 sum: 1187e1d52c10b2ca408c79b4d896288f

- Download size: 38 KB

- Estimated disk space required: 891 MB (with tests)

- Estimated build time: 0.7 SBU (add 5.2 SBU for tests)

### cargo-c Dependencies

#### Required

rustc-1.95.0

#### Recommended

libssh2-1.11.1

### Note

An Internet connection is needed for building this package. The system certificate store may need to be set up with make-ca-1.16.1 before building this package.

## Installation of cargo-c

First, download a file to ensure that cargo uses the dependency versions specified by the upstream developers when this cargo-c version (0.10.21) was released. Without this, the latest versions of the dependencies would be used and they might cause breakages:

    curl -fLO https://github.com/lu-zero/cargo-c/releases/download/v0.10.21/Cargo.lock

### Note

Normally we would put such a download into an “Additional Downloads” section. But in this case we cannot tell the package name and version from the file name `Cargo.lock`, so it's better not to put the ambiguously-named file outside the `cargo-c-0.10.21` directory. We use curl here because the cURL-8.19.0 package should have been installed as a required dependency of rustc-1.95.0.

The md5sum of the file should be `7a5cf2df8e27c24f0d9400d70d4018e0`.

Install cargo-c by running the following commands:

    export LIBSSH2_SYS_USE_PKG_CONFIG=1    &&
    export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 &&

    cargo build --release

To test the results, issue: cargo test --release.

Now, as the `root` user:

    install -vm755 target/release/cargo-{capi,cbuild,cinstall,ctest} /usr/bin/

Finally, unset the exported environment variables:

    unset LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG

## Command Explanations

export LIBSSH2_SYS_USE_PKG_CONFIG=1: Allow cargo to link to system libssh2. Omit this command if you've not installed libssh2-1.11.1.

export LIBSQLITE3_SYS_USE_PKG_CONFIG=1: Allow cargo to link to system sqlite.

## Contents

Installed Programs: cargo-capi, cargo-cbuild, cargo-cinstall, and cargo-ctest
Installed Libraries: None
Installed Directories: None

- Prev

  Programming

- Next

  Cbindgen-0.29.2

- Up
- Home