Всем привет. Я в ступоре. Есть библиотека libnield.a, есть cpp файл, который зовёт оттуда одну функцию init_nield. При линковке выскакивает ошибка:
netmon.cpp:(.text+0x44): undefined reference to `init_nield(int, char**, nield_cbs*)'
Всё было бы понятно, но:
$ nm ../../../../libnield_prefix/lib/libnield.a |grep init_nield
0000000000000b20 T init_nield
$ grep init_nield ../../../../../3rdparty/nield/src/nield.c
void init_nield(int argc, char **argv, struct nield_cbs* callbacks)
А самое замечательное то, что если переименовать файл netmon.cpp в netmon.c и использовать не g++, а gcc, то всё линкуется нормально. В чём могут быть различия в линковке сишного и плюсового файла, которые выливаются в такие последствия?