CMake en de bcm2835 bibliotheek

Beste heren en dames!

Laat ik beginnen met dat ik jullie alle een fijne kerst en een mooi 2021 toe te wensen!

Op deze 1ste kerst dag zit ik een beetje met een probleempje.

Ik heb namelijk een MLX90461 IR camera gekocht voor project. En deze wil ik uitlezen via een stukje code geschreven in C++.

Nu heeft de fabriekant al heel wat werk voor mij gedaan door code te schrijven. Echter is dit niet geschikt voor de Raspberry Pi. Gelukkig heeft iemand anders dit ook al opgelost. Zie dit mooie GitHub project https://github.com/Arthav24/MLX90641

Voor deze code is de bcm2835 bibliotheek nodig.
https://www.airspayce.com/mikem/bcm2835/index.html

Deze heb ik geinstalleerd volgens de link hierboven.
Nu kan ik de example uit de bovenstaande GitHub project uivoeren met het volgende:

code:

    
1  cd MLX90641/
2  sudo make
3  ./printgrid 

En dan voert ie mooi het example uit en krijg je een hele hoop data van de sensor.
Echter gaat dit via een MakeFile, en werk ik zelf met een CMakeList.txt file, dit is een laag hier op. En nu komen de problemen, ik krijg het niet voor elkaar om de bcm2835 te linken aan de file.

Zie hieronder mijn CMakeList.txt

code:

cmake_minimum_required(VERSION 3.10)

set(CMAKE_CXX_STANDARD 20)

project(robot-on-wheels)

add_executable(camera MLX90641/Examples/print_grid.cpp)

# Add files to libray for the MLX90641 #
add_library(mlx90641
            MLX90641/MLX90641_API.cpp
            MLX90641/MLX90641_I2C_Driver.cpp)

target_link_libraries(camera mlx90641 -lm -lbcm2835)

Ik had wel dit voorbeeld gevonden op StackOverFlow alleen kom ik hier ook niet mee uit. https://stackoverflow.com/questions/14593918/link-library-with-cmake

Als ik namelijk de example code draai:

code:

pi@raspberrypi:~$ cd MLX90641/
pi@raspberrypi:~/MLX90641$ sudo make
g++ -IHeaders/ MLX90641_API.cpp MLX90641_I2C_Driver.cpp Examples/print_grid.cpp -o printgrid  -lm -lbcm2835

Is te zien dat hij er twee bibliotheken aantoevoegd, daarom had ik ook gedaan.

code:

target_link_libraries(camera mlx90641 -lm -lbcm2835)

Maar ondanks dat krijg ik nog steeds een error:

code:

Process finished with exit code 139

Ik hoop dat er hier iemand is die ziet wat hier fout gaat.
Hieronder is mijn file tree te zien.

code:

Robot-on-wheels/
┣ bcm2835-1.68
┣ MLX90641/
┃ ┣ Examples/
┃ ┃  ┗ print_grid.cpp
┃ ┣ Headers/
┃ ┃	┣ MLX90641_API.h
┃ ┃	┗ MLX90641_I2C_Driver.h
┃ ┣ Makefile
┃ ┣ MLX90641_API.cpp
┣ ┗ MLX90641_I2C_Driver.cpp
┣ Motor/
┃ ┣ Examples/
┃ ┃  ┗ example.cpp
┃ ┣ Headers/
┃ ┃	┣ BV4604_MotorControl.h
┃ ┃	┗ Sonar.h
┃ ┣ BV4604_MotorControl.cpp
┃ ┣ CMakeLists.txt
┃ ┗ Sonar.cpp
┣ CMakeLists.txt
┣ README.md
┗ Main.cpp

De vraag is dus, is er iemand die ziet wat ik verkeerd doe in mijn CMakeList.txt waardoor het niet werkt.