簡體   English   中英

xcode c代碼編譯錯誤

[英]xcode c code compile error

我在程序中使用了crc。 ViewController.mm ViewDidLoad方法代碼如下:

char *testChars = "test chars";
crc32(0, (unsigned char*)testChars, strlen(testChars));

crc32功能代碼如下:

uint32_t crc32 (uint32_t crc, unsigned char *buf, size_t len)
{
unsigned char *end;
crc = ~crc;
for (end = buf + len; buf < end; ++buf)
    crc = crc32_table[(crc ^ *buf) & 0xff] ^ (crc >> 8);
return ~crc;

}

編譯錯誤是:

Undefined symbols for architecture x86_64,"crc32(unsigned int, unsigned char*, unsigned long)", referenced from:-[ViewController viewDidLoad:] in ViewController.o

ViewController.mm更改為ViewController.m ,編譯成功。 為什么?

您對crc的定義可能在C文件中,而不是C ++文件中,因此該名稱未更改為特定於類型的版本。

您在.mm文件中的用法將與C ++相同,因此將被重命名。

通過將包含文件更改為.m,您可以針對C對其進行編譯,因此問題就消失了。

或者,您可以將crc文件更改為具有C ++擴展名(c ++或cc)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM