我在Eclipse中有一个C ++项目,我有一个较小的项目,我在网络管理器库周围有包装,当我从C ++代码调用NM C函数时,我自己的生活更轻松。
所以我创建了一个简单的文件,nmi.c和nmi.h,我创建了libnmi.a:
gcc -c nmi.c `pkg-config --cflags --libs mm-glib glib-2.0 libnm` -o nmi.o
ar rcs libnmi.a nmi.o
gcc -c -fPIC nmi.c `pkg-config --cflags --libs mm-glib glib-2.0 libnm` -o nmi.o
图书馆工作正常,或者似乎。我有一个测试代码a.cpp,我用它编译:
${CC}g++ a.cpp `pkg-config --cflags --libs mm-glib glib-2.0 libnm` -L. -lnmi -o acpp
和acpp创建得很好并且有效。
但是当我尝试将它集成到Eclipse中时,我遇到了一些重大问题。
我尝试复制我在a.cpp中所做的事情,其中包括外部“C”中的nmi.h:
extern "C" {
#include "nmi.h"
}
并通过界面中的BUILD设置使用-L和-l进行编译。我还在g ++编译器调用和g ++链接器调用中将pkg-config --cflags --libs mm-glib glib-2.0 libnm设置为参数但是我收到以下错误:
Invoking: Cross G++ Linker arm-linux-gnueabihf-g++ \`/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-pkg-config --cflags --libs mm-glib glib-2.0\`
nmi.c:(.text+0x14): undefined reference to `nm_client_get_type' nmi.c:(.text+0x2e): undefined reference to `nm_client_add_connection_finish' nmi.c:(.text+0x56): undefined reference to `nm_connection_get_type' nmi.c:(.text+0x68): undefined reference to `nm_connection_get_path' /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/libnmi.a(nmi.o): In function `add_connection': nmi.c:(.text+0x9c): undefined reference to `nm_simple_connection_new' nmi.c:(.text+0xa2): undefined reference to `nm_setting_connection_new' nmi.c:(.text+0xa8): undefined reference to `nm_utils_uuid_generate' nmi.c:(.text+0xf2): undefined reference to `nm_setting_get_type' nmi.c:(.text+0x106): undefined reference to `nm_connection_add_setting' nmi.c:(.text+0x10a): undefined reference to `nm_setting_gsm_new' nmi.c:(.text+0x146): undefined reference to `nm_setting_get_type' nmi.c:(.text+0x15a): undefined reference to `nm_connection_add_setting' nmi.c:(.text+0x15e): undefined reference to `nm_setting_ip4_config_new' nmi.c:(.text+0x186): undefined reference to `nm_setting_get_type' nmi.c:(.text+0x19a): undefined reference to `nm_connection_add_setting' nmi.c:(.text+0x1b4): undefined reference to `nm_client_add_connection_async' collect2: error: ld returned 1 exit status make: *** [LocatorSource_Falcon] Error 1
但是,当我在命令中运行一切测试代码时:
${CC}g++ a.cpp `pkg-config --cflags --libs mm-glib glib-2.0 libnm` -L. -lnmi -o acpp
/ wtw / falcon / build / locatorsource / DriverCenter / LocatorSource / branches / ModemManager / Src / ThirdPartyLibs / NetworkManager $ ll 共68 drwxrwxr-x 4 a a 4096 May 18 18:05 ./ drwxr-xr-x 7 a a 4096 Apr 21 14:03 ../ -rwxrwxr-x 1 a a 14287 5月18日18:05 acpp *
我是否遗漏了Eclipse中的某些内容,似乎它正在深入挖掘库并需要找到静态库链接到的所有内容?
由于