두 개의 C 스크립트를 컴파일하는 데 문제가 있습니다. 내가 파일을 다운로드했습니다 here, 내가 LabJack와의 인터페이스를 허용 해야하는 예제 세트입니다. 현재 내 디렉토리에 u3.h
, u3.c
및 lj.c
(아래 코드)이 있습니다. u3.h
및 u3.c
파일이 상당히 길어서 전체를 표시하는 것이 부적절한 것으로 나타났습니다.OSX : C 스크립트가 컴파일되지만 링커 오류가 발생했습니다
대신 내가 뭔가를 오해하고있는 부분이라고 생각하여 c
파일에 무엇이 포함되어 있는지 보여주고 싶었습니다.
#include "u3.h"
#include <stdlib.h>
그리고 여기에 헤더 파일의 상단에 무엇이다 :
#ifndef U3_H_
#define U3_H_
#include <sys/time.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "labjackusb.h"
파일 lj.c
은 다음과 같습니다.
내가 가진 오류는 각 파일을 개별적으로 컴파일하더라도 터미널에서 파일을 링크하려고 할 때 발생합니다. 터미널에서 나는
$ gcc lj.c u3.c -o test
를 사용하고 난 다음 오류 얻을 :
Undefined symbols for architecture x86_64:
"_LJUSB_CloseDevice", referenced from:
_openUSBConnection in u3-fab2dd.o
_closeUSBConnection in u3-fab2dd.o
"_LJUSB_GetDevCount", referenced from:
_openUSBConnection in u3-fab2dd.o
"_LJUSB_OpenDevice", referenced from:
_openUSBConnection in u3-fab2dd.o
"_LJUSB_Read", referenced from:
_openUSBConnection in u3-fab2dd.o
_getCalibrationInfo in u3-fab2dd.o
_I2C in u3-fab2dd.o
_ehConfigIO in u3-fab2dd.o
_ehFeedback in u3-fab2dd.o
_ehConfigTimerClock in u3-fab2dd.o
"_LJUSB_Write", referenced from:
_openUSBConnection in u3-fab2dd.o
_getCalibrationInfo in u3-fab2dd.o
_I2C in u3-fab2dd.o
_ehConfigIO in u3-fab2dd.o
_ehFeedback in u3-fab2dd.o
_ehConfigTimerClock in u3-fab2dd.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
나는 문제가 무엇인지 확실하지 않다, 그리고 나는 온라인을 검토 한하지만 난 어떤 해결책을 발견하지 않았습니다 이해할 수 있고 실행하려고 노력합니다.
여기에서 3000 개 이상의 기존 질문 및 답변을 찾을 수 없음 * 아키텍처 x86_64 *에 대한 정의되지 않은 기호가 도움이 되었습니까? –
나는 이미 Labjack 라이브러리를 다루었다고 생각했지만 문제를 이해하지 못하는 것 같습니다. duskwuff가 제공 한 대답은 매우 유용했습니다! –