2015-02-02 4 views
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에도 경로를 넣으려고했습니다. 그러나 여전히 링커는 공유 라이브러리를 찾을 수 없습니다.

+0

라이브러리 대 소스 파일, 즉'GCC -L/홈/gadre/데스크탑/테스트 /의 순서를 변경해보십시오 작동 libwebsockets/build/lib/simple-server.c -lwebsockets -os'입니다. –

+0

PATH 변수에 없으므로 #include ""을 넣으십시오. 따라서 찾을 수 없습니다. – vvvv

+1

이제 컴파일 할 수 있습니다 ... 다음 명령을 사용했습니다. 런타임 링크 옵션 포함. gcc -L/home/gadre/데스크탑/테스트/libwebsockets/build/lib -Wl, -rpath =/home/gadre/Desktop/Testing/libwebsockets/build/lib -Wall -o 서버 incr_server.c -lwebsockets. 구체적인 내용은 모르지만 당장은 작동합니다. – Haswell

답변

0

지금 컴파일 할 수 있습니다. 다음 명령을 사용했습니다. 런타임 링크 옵션 포함.

gcc -L/home/gadre/Desktop/Testing/libwebsockets/build/lib -Wl,-rpath=/home/gadre/Desktop/Testing/libwebsockets/build/lib -Wall -o server incr_server.c -lwebsockets

나는 특성을 모르는 그러나 지금은