1
libwebsockets 라이브러리를 사용하는 프로그램을 컴파일하려고합니다.공유 라이브러리 컴파일 gcc
내 리눅스 컴퓨터에서 libwebsockets를 다운로드하고 컴파일했으며 다음과 같은 디렉토리 구조를 가지고 있습니다.
/libwebsockets/build/bin/ -> contains the compiled binaries (test-server,test-client etc)
/libwebsockets/build/lib/ -> contains the shared libraries. libwebsockets.so libwebsockets.a libwebsockets.so.5.0.0
/libwebsockets/lib/ -> contains all the header files. eg: libwebsockets.h libwebsockets.c
/libwebsockets/test-server -> contains application programs..(test-server.c test-client.c etc)
는 지금은 /libwebsockets/테스트 서버 디렉토리에 내 C 프로그램 파일 간단한 server.c를 만들었습니다.
내가이 프로그램을 컴파일하려고
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <syslog.h>
#include <signal.h>
#include <libwebsockets.h>
simple-server.c:(.text+0x14c): undefined reference to `lwsl_emit_syslog'
simple-server.c:(.text+0x158): undefined reference to `lws_set_log_level'
simple-server.c:(.text+0x16d): undefined reference to `libwebsocket_get_internal_extensions'
simple-server.c:(.text+0x1a5): undefined reference to `libwebsocket_create_context'
simple-server.c:(.text+0x1c4): undefined reference to `_lws_log'
simple-server.c:(.text+0x1e9): undefined reference to `libwebsocket_service'
simple-server.c:(.text+0x209): undefined reference to `libwebsocket_context_destroy'
simple-server.c:(.text+0x21d): undefined reference to `_lws_log'
gcc -L/home/gadre/Desktop/Testing/libwebsockets/build/lib/ -lwebsockets simple-server.c -o s
나는 링커 오류
어떻게 해결할 수 있습니까? LD_LIBRARY_PATH에도 경로를 넣으려고했습니다. 그러나 여전히 링커는 공유 라이브러리를 찾을 수 없습니다.
라이브러리 대 소스 파일, 즉'GCC -L/홈/gadre/데스크탑/테스트 /의 순서를 변경해보십시오 작동 libwebsockets/build/lib/simple-server.c -lwebsockets -os'입니다. –
PATH 변수에 없으므로 #include ""을 넣으십시오. 따라서 찾을 수 없습니다. –
vvvv
이제 컴파일 할 수 있습니다 ... 다음 명령을 사용했습니다. 런타임 링크 옵션 포함. gcc -L/home/gadre/데스크탑/테스트/libwebsockets/build/lib -Wl, -rpath =/home/gadre/Desktop/Testing/libwebsockets/build/lib -Wall -o 서버 incr_server.c -lwebsockets. 구체적인 내용은 모르지만 당장은 작동합니다. – Haswell