0

我使用 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”,引用自:1-af7b2e.o中的_main“_idevice_get_udid”,引用自:1-af7b2e.o中的_main“_idevice_new_with_options”,引用自:1-af7b2e.o ld中的_main:未找到体系结构 x86_64 的符号

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

4

1 回答 1

2

你需要包括libimobiledevice图书馆,试试这个:

gcc hello.c -o hello -limobiledevice-1.0

于 2021-07-05T22:32:06.600 回答