eclipse CDT /usr/bin/ld: 找不到 -l<libname>
eclipse CDT /usr/bin/ld: cannot find -l<libname>
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <libimobiledevice/libimobiledevice.h>
#include <libimobiledevice/lockdown.h>
#include <libimobiledevice/installation_proxy.h>
#include <libimobiledevice/notification_proxy.h>
#include <libimobiledevice/afc.h>
int main(void) {
idevice_t phone = NULL;
char *udid = NULL;
idevice_new(&phone, udid);
puts("!!!hello!!!"); /* prints !!!Hello World!!! */
return EXIT_SUCCESS;
}
我安装了 libimobiledevice 库,这是
#ls /usr/lib/i386-linux-gnu | grep libimob
libimobiledevice.a
libimobiledevice.so
libimobiledevice.so.4
libimobiledevice.so.4.0.1
但是为什么在配置 CDT 中使用像图片这样的共享库 CDT 错误?
/usr/bin/ld: cannot find -llibimobiledevice
在库下添加 imobiledevice
而不是 libimobiledevice
。当您使用 -lx
时,链接器会搜索 libx.so
。在您的情况下,链接器搜索了它找不到的 liblibimobiledevice.so
。
在 Mars Eclipse 中,要添加第三方库,只能从
C++/Build->Setting->Cross G++ Link-> Miscellaneous.
我浪费了两个小时通过其他方法添加库,但这个方法对我有用。
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <libimobiledevice/libimobiledevice.h>
#include <libimobiledevice/lockdown.h>
#include <libimobiledevice/installation_proxy.h>
#include <libimobiledevice/notification_proxy.h>
#include <libimobiledevice/afc.h>
int main(void) {
idevice_t phone = NULL;
char *udid = NULL;
idevice_new(&phone, udid);
puts("!!!hello!!!"); /* prints !!!Hello World!!! */
return EXIT_SUCCESS;
}
我安装了 libimobiledevice 库,这是
#ls /usr/lib/i386-linux-gnu | grep libimob
libimobiledevice.a
libimobiledevice.so
libimobiledevice.so.4
libimobiledevice.so.4.0.1
但是为什么在配置 CDT 中使用像图片这样的共享库 CDT 错误?
/usr/bin/ld: cannot find -llibimobiledevice
在库下添加 imobiledevice
而不是 libimobiledevice
。当您使用 -lx
时,链接器会搜索 libx.so
。在您的情况下,链接器搜索了它找不到的 liblibimobiledevice.so
。
在 Mars Eclipse 中,要添加第三方库,只能从 C++/Build->Setting->Cross G++ Link-> Miscellaneous.
我浪费了两个小时通过其他方法添加库,但这个方法对我有用。