Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试构建Nexus 6内核时出错:赋值从整数生成指针,无需转换[-Wint转换]_Android_C_Linux - Fatal编程技术网

Android 尝试构建Nexus 6内核时出错:赋值从整数生成指针,无需转换[-Wint转换]

Android 尝试构建Nexus 6内核时出错:赋值从整数生成指针,无需转换[-Wint转换],android,c,linux,Android,C,Linux,我正试图为我的Nexus6(shamu)(棉花糖)构建一个如下()的内核。当我键入“sudo make”时,我得到以下错误: arch/x86/kernel/pci-dma.c: In function ‘dma_generic_alloc_coherent’: arch/x86/kernel/pci-dma.c:105:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion] erro

我正试图为我的Nexus6(shamu)(棉花糖)构建一个如下()的内核。当我键入“sudo make”时,我得到以下错误:

arch/x86/kernel/pci-dma.c: In function ‘dma_generic_alloc_coherent’:
arch/x86/kernel/pci-dma.c:105:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
error, forbidden warning: pci-dma.c:105
scripts/Makefile.build:308: fallo en las instrucciones para el objetivo 'arch/x86/kernel/pci-dma.o'
make[2]: *** [arch/x86/kernel/pci-dma.o] Error 1
scripts/Makefile.build:455: fallo en las instrucciones para el objetivo 'arch/x86/kernel'
make[1]: *** [arch/x86/kernel] Error 2
Makefile:799: fallo en las instrucciones para el objetivo 'arch/x86'
make: *** [arch/x86] Error 2
我没有写那个文件,所以我不知道是什么原因导致了错误,文件的那部分是错误的

void *dma_generic_alloc_coherent(struct device *dev, size_t size,
                 dma_addr_t *dma_addr, gfp_t flag,
                 struct dma_attrs *attrs)
{
    unsigned long dma_mask;
    struct page *page;
    unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
    dma_addr_t addr;

    dma_mask = dma_alloc_coherent_mask(dev, flag);

    flag |= __GFP_ZERO;
again:
    page = NULL;
    /* CMA can be used only in the context which permits sleeping */
    if (flag & __GFP_WAIT)
        page = dma_alloc_from_contiguous(dev, count, get_order(size));
    /* fallback */
    if (!page)
        page = alloc_pages_node(dev_to_node(dev), flag, get_order(size));
    if (!page)
        return NULL;    

    addr = page_to_phys(page);
    if (addr + size > dma_mask) {
        __free_pages(page, get_order(size));

        if (dma_mask < DMA_BIT_MASK(32) && !(flag & GFP_DMA)) {
            flag = (flag & ~GFP_DMA32) | GFP_DMA;
            goto again;
        }

        return NULL;
    }

    *dma_addr = addr;
    return page_address(page);
}

如何解决这个问题?

您确定要构建x86内核吗?Felix,我不知道,我正在按照指南进行操作,是否应该更改编译器?如何操作?我假设Nexus6是一个
arm
设备,但您显示的消息表明
x86
的代码已编译,因此您可能使用主机的普通C编译器创建
x86
代码。您需要一个针对您的设备的交叉编译器,例如@FelixPalmen您是对的,谢谢!
        page = dma_alloc_from_contiguous(dev, count, get_order(size));