Есть Си библиотека, собранная следующим образом:
gcc -fPIC -c DHT_Driver/common_dht_read.c -o DHT_Driver/common_dht_read.o -std=gnu99
gcc -fPIC -c DHT_Driver/pi_dht_read.c -o DHT_Driver/pi_dht_read.o -std=gnu99
gcc -fPIC -c DHT_Driver/pi_mmio.c -o DHT_Driver/pi_mmio.o -std=gnu99
gcc -shared DHT_Driver/common_dht_read.o DHT_Driver/pi_dht_read.o DHT_Driver/pi_mmio.o -o DHT_Driver/libdht_driver.so
Инклужу .h файл с экспортируемой функцией
extern int pi_dht_read(int type, int pin, float* temperature, float* humidity);
Но при сборке g++ приложения с линковкой этой либы пишет ошибку:
g++ main.cpp -ldht_driver
/tmp/ccxRKglu.o: In function `main':
main.cpp:(.text+0x1c): undefined reference to `pi_dht_read(int, int, float*, float*)'
collect2: error: ld returned 1 exit status
А если создаю Си приложение и компилю gcc то никаких проблем нет.