CentOS 버전 4.3에서 다음 C 코드를 컴파일하는 동안 오류가 발생합니다. 컴파일 오류의'htole32'에 대한 정의되지 않은 참조
#include <endian.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
union {
uint32_t u32;
uint8_t arr[4];
} x;
x.arr[0] = 0x11;
x.arr[1] = 0x22;
x.arr[2] = 0x33;
x.arr[3] = 0x44;
printf("x.u32 = 0x%x\n", x.u32);
printf("htole32(x.u32) = 0x%x\n", htole32(x.u32));
printf("htobe32(x.u32) = 0x%x\n", htobe32(x.u32));
exit(EXIT_SUCCESS);
}
세부 사항 :
$ gcc가 교류 /tmp/ccki8bVg.o(.text+0x3a) : /tmp/ccki8bVg.o(.text+0x58 '기능
main': : undefined reference to
htole32에서)에서 기능main': : undefined reference to
htobe32 'collect2 : ld는 내 서버에없는 htole32 및 htobe32이 것 같습니다 1 종료 상태
를 반환했습니다.
$ 사람은 실제로 htole32
IDE에서 포함 및 라이브러리 플래그 (또는 명령 행 컴파일러 플래그)를 확인하십시오. 이것은 단순히 컴파일이 함수가 참조하는 includes/sources/libraries를 찾을 수 없다는 것을 의미합니다. 서버의 위치가 잘못되었거나 경로 이름에 오타가있을 수 있습니다. 적어도, 1) 플래그가있는 명령 행 빌드 명령문 또는 2) 코드 스 니펫에 포함, 소스 및 라이브러리에 대한 IDE 구성을 넣으십시오. – ha9u63ar