[英]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.