我运行libimobiledevice入门代码,看到错误了吗?

问题描述

我使用gcc来编译代码

#include <stdio.h>
#include <stdlib.h>
#include <libimobiledevice/lockdown.h>
#include <libimobiledevice/libimobiledevice.h>
#include <plist/plist.h>

int main()
{
    static char *udid = NULL;

    /* Device Handle */
    idevice_t device = NULL;

    /* Try to connect to first USB device */
    if (idevice_new_with_options(&device,NULL,IDEVICE_LOOKUP_USBMUX) != IDEVICE_E_SUCCESS) {
        printf("ERROR: No device found!\n");
        return -1;
    }

    /* Retrieve the udid of the connected device */
    if (idevice_get_udid(device,&udid) != IDEVICE_E_SUCCESS) {
    printf("ERROR: Unable to get the device UDID.\n");
    idevice_free(device);
    return -1;
    }

    /* Outputs device identifier */
    printf("Connected with UDID: %s\n",udid);

    /* Cleanup */
    idevice_free(device);
    free(udid);
}

得到

x86_64体系结构的未定义符号: “ _idevice_free”,引用自: _main在1-af7b2e.o中 “ _idevice_get_udid”,引用自: _main在1-af7b2e.o中 “ _idevice_new_with_options”,引用自: _main在1-af7b2e.o中 ld:找不到架构x86_64的符号

虽然我尝试过gcc -lstdc++ hello.c -o hello,但仍无法编译。

解决方法

您需要包含 libimobiledevice 库,试试这个:

gcc hello.c -o hello -limobiledevice-1.0

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...