链接到静态库的Eclipse GCC失败了?

时间:2016-05-19 01:11:45

标签: linux eclipse gcc linker g++

我在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中的某些内容,似乎它正在深入挖掘库并需要找到静态库链接到的所有内容?

由于

0 个答案:

没有答案