Building Flutter Linux on Manjaro
Tags: flutter, beginners, manjaro, linux
Published: 2022-08-06 09:15:40

---
title: Building Flutter Linux on Manjaro
published: true
date: 2022-08-06 08:56:29 UTC
tags: flutter, beginners, manjaro, linux
canonical_url: 
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00ne7xycraex8cih4s4m.jpg
---

Last week I was eager to check out a little Flutter application built by [Lucas Schuster](https://hashnode.com/@internerd).  
I was especially interested in trying the Flutter Desktop support for Linux.  
After installing Flutter via [fvm](https://github.com/fluttertools/fvm), I checked out his Git repository and issued the following command for building the Flutter app on Linux:

```
flutter build linux
```

Unfortunately this gave me the following error message:

```
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:605 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPkgConfig.cmake:827 (_pkg_check_modules_internal)
flutter/CMakeLists.txt:25 (pkg_check_modules)
```

I doubled checked the [official documentation](https://docs.flutter.dev/development/platform-integration/desktop) and verified that the following packages were installed:

- clang 
- cmake 
- ninja-build 
- pkg-config 
- gtk3

Afterwards I reran the build command but with the verbose flag enabled:

```
flutter build linux -v
```

Which resulted in:

```
[] -- Checking for module 'gtk+-3.0'
[+1 ms] -- No package 'gtk+-3.0' found
```

Flutter was not able to locate my gtk installation.  
You can check if `pkg-config` can locate the package by running:

```
pkg-config --libs gtk+-3.0
```

This command returned the following error on my system:

```
Package gtk+-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-3.0' found
```

I fixed this by figuring out where `gtk3` is installed and adding the directory to the `PKG_CONFIG_PATH` variable.  
Check where the package is located:

```
pacman -Ql gtk3

gtk3 /usr/lib/pkgconfig/gtk+-3.0.pc
```

Let's add this directory to `PKG_CONFIG_PATH` environment variable:

```
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
```

You might want to add this to your `.bashrc` or `.zshrc` config file.  
Don't forget to reload your environment, e.g. with the `source ~/.zshrc`!

After modifying the `PKG_CONFIG_PATH` the Flutter build returned:

```
Package 'shared-mime-info', required by 'gdk-pixbuf-2.0', not found
Configuring incomplete, errors occurred!
```

Okay, another familiar error, let's check if `shared-mime-info` is available:

```
pkg-config --libs shared-mime-info
```

If the package was not found on your system, you can install it via `yay` or `pacman`  
E.g.:`yay -Sy shared-mime-info`  
Afterwards check the installation path:`yay -Ql shared-mime-info`  
Search for the directory including the `shared-mime-info.pc` file, in my case it was: `/usr/share/pkgconfig/`

Therefore, I added this directory to the `PKG_CONFIG_PATH` as well:  
`export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/share/pkgconfig/`

Afterwards I was able to build and run the Flutter application on Manjaro!

Photo by <a href="https://unsplash.com/@danist07?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Danist Soh</a> on <a href="https://unsplash.com/s/photos/build?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>