macOS에서 동적 라이브러리를 연결할 수 없습니다.

Carpetfizz

내 C 프로젝트에서 quirc 라는 C 라이브러리를 사용하려고합니다 . 지금까지 Linux 파일 을 사용 libquirc.dylib.1.0하는를 수정하여 생성했습니다 .Makefile.so

quirc / helloquirc.c

#include <quirc.h>
#include <stdio.h>


int main() {

    struct quirc *qr;

    qr = quirc_new();

    if (!qr) {
        printf("Failed to allocate memory");
    }

    quirc_destroy(qr);

    return 0;
}

저장소의 루트에 위의 소스 파일을 만들었습니다. 다음 명령을 사용하여 컴파일하고 있습니다.

gcc helloquirc.c -lquirc -L. -Ilib -o helloquirc

내가 이해하기 위해 -l플래그는 동적 라이브러리의 이름을 지정 하고 플래그는 동적 라이브러리 -L의 위치를 -I지정하고 플래그는 헤더 파일의 위치를 -o지정하고 실행 파일의 이름을 지정합니다.

이 명령을 실행하면 다음 오류가 발생합니다.

ld: library not found for -lquirc
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Makefile이 라인을 사용하여 변경

.PHONY: libquirc.dylib
libquirc.dylib: libquirc.$(LIB_VERSION).dylib

libquirc.$(LIB_VERSION).dylib: $(LIB_OBJ)
    $(CC) -shared -dynamiclib -o $@ $(LIB_OBJ) $(LDFLAGS) -lm

의 다른 인스턴스 .so.$(LIB_VERSION).$(LIB_VERSION).dylib

디트리히 Epp

quirc만들어진 방식 문제가 있습니다. 올바른 라이브러리 이름은 libquirc.1.0.dylib라는 심볼릭 링크와 같은 것 입니다 libquirc.dylib.

quirc에는 gyp 또는 cmake와 같은 합리적인 것을 사용하는 대신 손으로 작성한 makefile이있는 것 같습니다. 여러 플랫폼에서 공유 라이브러리를 빌드하지 않는 한 손으로 쓴 메이크 파일은 괜찮습니다.

그러나 직접 컴파일하는 경우 정적 라이브러리를 대신 사용하면 더 간단하다는 것을 알 수 있습니다. 누구와도 공유하지 않는 경우 공유 라이브러리를 갖는 것은 의미가 없습니다 (다른 프로그램이 똑같은 사본사용하지 않는 경우 libquirc).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Makefile에서 정적 라이브러리를 연결할 수 없습니다.

분류에서Dev

Linux에서 Mingw를 사용하여 정적 라이브러리에 연결할 수 없습니다.

분류에서Dev

macfuse를 C ++ 정적 라이브러리에 연결할 수 있습니까?

분류에서Dev

Windows에서 grpc 라이브러리를 연결할 수 없습니다.

분류에서Dev

cmake를 GLFW 라이브러리에 연결할 수 없습니다.

분류에서Dev

Bazel에서 Python 스크립트를 실행할 때 동적 라이브러리를 찾을 수 없습니다.

분류에서Dev

macOS에서 C 표준 라이브러리에 연결할 수 없음

분류에서Dev

동적 연결이 제대로 작동하는 동안 VS2012를 사용하여 정적 부스트 라이브러리에 연결할 수 없습니다.

분류에서Dev

PHP 확장이 동적 라이브러리를로드 할 수 없습니다.

분류에서Dev

VSTOInstaller.exe 오류 0x8007007F 프로 시저 진입 점 GetFileVersionInfoExW를 동적 연결 라이브러리 VERSION.dll에서 찾을 수 없습니다.

분류에서Dev

Linux에서 Cmake를 통해 opencv 라이브러리를 연결할 수 없습니다.

분류에서Dev

정적 라이브러리에서 ALAssetsLibrary를 사용하는 동안 그룹 / 결과를 열거 할 수 없습니다.

분류에서Dev

동적 라이브러리를로드 할 수 없습니다 'libnvinfer.so.6'

분류에서Dev

PHP 시작 동적 라이브러리를로드 할 수 없습니다.

분류에서Dev

PHP 및 Mongo : 동적 라이브러리를로드 할 수 없습니다.

분류에서Dev

PHP는 Firebird 동적 라이브러리를로드 할 수 없습니다.

분류에서Dev

서버 라이브러리를로드 할 수 없으며 동적 링크 라이브러리 LIBPQ.dll

분류에서Dev

여러 서브넷의 클라이언트는 동시에 서버에 연결할 수 없습니다.

분류에서Dev

여러 서브넷의 클라이언트는 동시에 서버에 연결할 수 없습니다.

분류에서Dev

paho 라이브러리로 mosquitto 2.0에 연결할 수 없습니다.

분류에서Dev

Python 기반 라이브러리 ftplib를 사용하여 로컬 FTP 서버에 연결할 수 없습니다.

분류에서Dev

ServiceStack.Redis 라이브러리를 사용하여 Redis 캐시 서버에 연결할 수 없습니다.

분류에서Dev

여러 DLL (동적 링크 라이브러리)이 LIB (정적 라이브러리)에서 스레드 로컬 저장소를 공유 할 수 있습니까?

분류에서Dev

라이브러리 연결 중에 참조를 찾을 수 없습니다.

분류에서Dev

pycharm에 라이브러리를 추가 할 수 없습니다.

분류에서Dev

동적 기능 모듈의 타사 라이브러리가 리소스에 액세스 할 수 없습니다.

분류에서Dev

Xposed-정적 메서드를 연결할 수 없습니다.

분류에서Dev

Ubuntu가 연결되어있는 동안 브라우저에서 인터넷에 연결할 수 없습니다.

분류에서Dev

동적 라이브러리 'libudfex.so'에서 함수를 찾을 수 없습니다.

Related 관련 기사

  1. 1

    Makefile에서 정적 라이브러리를 연결할 수 없습니다.

  2. 2

    Linux에서 Mingw를 사용하여 정적 라이브러리에 연결할 수 없습니다.

  3. 3

    macfuse를 C ++ 정적 라이브러리에 연결할 수 있습니까?

  4. 4

    Windows에서 grpc 라이브러리를 연결할 수 없습니다.

  5. 5

    cmake를 GLFW 라이브러리에 연결할 수 없습니다.

  6. 6

    Bazel에서 Python 스크립트를 실행할 때 동적 라이브러리를 찾을 수 없습니다.

  7. 7

    macOS에서 C 표준 라이브러리에 연결할 수 없음

  8. 8

    동적 연결이 제대로 작동하는 동안 VS2012를 사용하여 정적 부스트 라이브러리에 연결할 수 없습니다.

  9. 9

    PHP 확장이 동적 라이브러리를로드 할 수 없습니다.

  10. 10

    VSTOInstaller.exe 오류 0x8007007F 프로 시저 진입 점 GetFileVersionInfoExW를 동적 연결 라이브러리 VERSION.dll에서 찾을 수 없습니다.

  11. 11

    Linux에서 Cmake를 통해 opencv 라이브러리를 연결할 수 없습니다.

  12. 12

    정적 라이브러리에서 ALAssetsLibrary를 사용하는 동안 그룹 / 결과를 열거 할 수 없습니다.

  13. 13

    동적 라이브러리를로드 할 수 없습니다 'libnvinfer.so.6'

  14. 14

    PHP 시작 동적 라이브러리를로드 할 수 없습니다.

  15. 15

    PHP 및 Mongo : 동적 라이브러리를로드 할 수 없습니다.

  16. 16

    PHP는 Firebird 동적 라이브러리를로드 할 수 없습니다.

  17. 17

    서버 라이브러리를로드 할 수 없으며 동적 링크 라이브러리 LIBPQ.dll

  18. 18

    여러 서브넷의 클라이언트는 동시에 서버에 연결할 수 없습니다.

  19. 19

    여러 서브넷의 클라이언트는 동시에 서버에 연결할 수 없습니다.

  20. 20

    paho 라이브러리로 mosquitto 2.0에 연결할 수 없습니다.

  21. 21

    Python 기반 라이브러리 ftplib를 사용하여 로컬 FTP 서버에 연결할 수 없습니다.

  22. 22

    ServiceStack.Redis 라이브러리를 사용하여 Redis 캐시 서버에 연결할 수 없습니다.

  23. 23

    여러 DLL (동적 링크 라이브러리)이 LIB (정적 라이브러리)에서 스레드 로컬 저장소를 공유 할 수 있습니까?

  24. 24

    라이브러리 연결 중에 참조를 찾을 수 없습니다.

  25. 25

    pycharm에 라이브러리를 추가 할 수 없습니다.

  26. 26

    동적 기능 모듈의 타사 라이브러리가 리소스에 액세스 할 수 없습니다.

  27. 27

    Xposed-정적 메서드를 연결할 수 없습니다.

  28. 28

    Ubuntu가 연결되어있는 동안 브라우저에서 인터넷에 연결할 수 없습니다.

  29. 29

    동적 라이브러리 'libudfex.so'에서 함수를 찾을 수 없습니다.

뜨겁다태그

보관