2014-09-23 1 views
-1

루아 지원을 사용하여 tshark 1.10.7 x86의 버젼을 제거하려고합니다. 테스트luaL_openlibs에서 빌드 tshark 1.10.7이 실패했습니다.

/configure --disable-wireshark --disable-packet-editor --disable-editcap --disable-mergecap  --disable-reordercap --disable-text2pcap  --disable-dftest  --disable-randpkt  --disable-airpcap  --disable-dumpcap  --disable-rawshark --disable-ipv6 --with-gnutls=no --with-gcrypt=no --disable-glibtest --with-lua=/usr/local/lib/ 

서로 다른 접근 방식 : 내가 현재 사용

옵션은 그들이다 내가 그것을 잘 구축 '루아가 --with-더는 = 없다'설정 및 이전 것을 사용

--with-lua=/usr/local 
--with-lua=/usr/local/src/lua-5.2.3 
--disable-usr-local (just in case i did miss some lua header file somewhere) 

방법. 슬렉웨어는 readline에 다시 연결 필요 보인다로서 내가 SORCE lua.org

에서 루아 5.2.3을 설치 않은

checking whether to use liblua for the Lua scripting plugin... yes 
checking Lua version... Lua 5.2 
checking lua.h usability... yes 
checking lua.h presence... yes 
checking for lua.h... yes 
checking lualib.h usability... yes 
checking lualib.h presence... yes 
checking for lualib.h... yes 
checking lauxlib.h usability... yes 
checking lauxlib.h presence... yes 
checking for lauxlib.h... yes 
checking for luaL_openlibs in -llua... no 
checking for luaL_openlibs in -llua5.2... no 
configure: error: Linking with liblua failed. 

내가 같은 짓을 libncurses : 여기

명령 위에서 오류 로그입니다 루아 5.2.3을 사용하면 올바르게 컴파일 할 수 있습니다.

bash-4.1# find /usr/local/include/ -iname "lu*" 
/usr/local/include/lualib.h 
/usr/local/include/lua.hpp 
/usr/local/include/lua.h 
/usr/local/include/luaconf.h 
bash-4.1# find /usr/local/bin/ -iname "lu*" 
/usr/local/bin/luac 
/usr/local/bin/lua 
bash-4.1# ls /usr/local/lib/liblua* 
/usr/local/lib/liblua.a 

자체는/usr/지방에서 수행 된 설치/: 여기

# lua -v 
Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio 

내 루아 파일의 위치입니다 :

make linux MYLIBS=-lncurses 

루아는 적어도 올바른 버전을 지적하는 것 src/lua-5.2.3/

내가 헤더 파일을 확인한 다른 includedirs를 시도해 보았습니다. 루아를 다시 설치하고, 슬랙웨어 13.37을 다시 설치했지만, 여전히 같은 값으로 실패하는 것 같습니다.

Google은 내 문제와 일치하지 않는 몇 개의 링크 만 표시했습니다. ask.wireshark lua 에 대한 가능한 관련 링크는 빌드 버그 일 수 있으므로 문제를 해결하지 못했습니다.

다른 검색 문자열은 대부분 헤더 파일 누락, 누락 된 누락 또는 readline 문제가있는 것으로 연결되는 것처럼 보입니다. 나는 이미 배제했다고 생각합니다. (아직 완성되지 않음) 내가 몇 가지 더 이유를했다 코멘트

config.log의 출력을 바탕으로

명확하게 lualib.h의 lua.h가 표시됩니다.

configure:31529: checking for luaL_openlibs in -llua                                                                 
configure:31554: gcc -o conftest -g -O2 -Wall -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wpointer-arith -Wno-pointer-sign -Warray-bounds -Wcast-align -Wformat-security -Wold-style-definition -Wstrict-prototypes -Wjump-misses-init -Wvla -Waddress -Warray-bounds -Wattributes -Wdiv-by-zero -Wignored-qualifiers -Wpragmas -Wno-overlength-strings -Wwrite-strings -Wno-long-long -Wc++-compat -Wshadow -Wlogical-op -fexcess-precision=fast -fvisibility=hidden -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DG_DISABLE_SINGLE_INCLUDES -D_FORTIFY_SOURCE=0 -I/usr/local/include -I/usr/include -I/usr/local/lib//include -Wl,--as-needed -L/usr/local/lib -L/usr/local/lib//lib conftest.c -llua -lz -L/usr/local/lib//lib -llua -lm -lm >&5                                              
conftest.c:63:1: warning: function declaration isn't a prototype                                                              
conftest.c:65:1: warning: function declaration isn't a prototype                                                              
conftest.c: In function 'main':                                                                       
conftest.c:65:1: warning: old-style function definition                                                                 
/usr/local/lib/liblua.a(loadlib.o): In function `ll_loadfunc':                                                               
loadlib.c:(.text+0x7f7): undefined reference to `dlsym'                                                                 
loadlib.c:(.text+0x857): undefined reference to `dlopen' 
loadlib.c:(.text+0x8d1): undefined reference to `dlerror' 
loadlib.c:(.text+0x901): undefined reference to `dlerror' 
/usr/local/lib/liblua.a(loadlib.o): In function `gctm': 
loadlib.c:(.text+0xb78): undefined reference to `dlclose' 
collect2: ld returned 1 exit status 
configure:31554: $? = 1 
configure: failed program was: 
| /* confdefs.h */ 
| #define PACKAGE_NAME "wireshark" 
| #define PACKAGE_TARNAME "wireshark" 
| #define PACKAGE_VERSION "1.10.7" 
| #define PACKAGE_STRING "wireshark 1.10.7" 
| #define PACKAGE_BUGREPORT "http://bugs.wireshark.org/" 
| #define PACKAGE_URL "http://www.wireshark.org/" 
| #define PACKAGE "wireshark" 
| #define VERSION "1.10.7" 
| #define VERSION_MAJOR 1 
| #define VERSION_MINOR 10 
| #define VERSION_MICRO 7 
| #define STDC_HEADERS 1 
| #define HAVE_SYS_TYPES_H 1 
| #define HAVE_SYS_STAT_H 1 
| #define HAVE_STDLIB_H 1 
| #define HAVE_STRING_H 1 
| #define HAVE_MEMORY_H 1 
| #define HAVE_STRINGS_H 1 
| #define HAVE_INTTYPES_H 1 
| #define HAVE_STDINT_H 1 
| #define HAVE_UNISTD_H 1 
| #define HAVE_DLFCN_H 1 
| #define LT_OBJDIR ".libs/" 
| #define YYTEXT_POINTER 1 
| #define HTML_VIEWER "mozilla" 
| #define _FILE_OFFSET_BITS 64 
| #define HAVE_NL80211 1 
| #define HAVE_NL80211_CMD_SET_CHANNEL 1 
| #define _U_ __attribute__((unused)) 
| #define DATAFILE_DIR "/usr/local/share/wireshark" 
| #define DOC_DIR "/usr/local/share/doc/wireshark" 
| #define HAVE_GLIB_PRINTF_GROUPING 1 
| #define HAVE_LIBPCAP 1 
| #define HAVE_PCAP_OPEN_DEAD 1 
| #define HAVE_PCAP_FREECODE 1 
| #define HAVE_PCAP_BREAKLOOP 1 
| #define HAVE_PCAP_FINDALLDEVS 1 
| #define HAVE_PCAP_DATALINK_VAL_TO_NAME 1 
| #define HAVE_PCAP_DATALINK_NAME_TO_VAL 1 
| #define HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION 1 
| #define HAVE_PCAP_LIST_DATALINKS 1 
| #define HAVE_PCAP_SET_DATALINK 1 
| #define HAVE_PCAP_LIB_VERSION 1 
| #define HAVE_PCAP_GET_SELECTABLE_FD 1 
| #define HAVE_PCAP_FREE_DATALINKS 1 
| #define HAVE_PCAP_CREATE 1 
| #define HAVE_BPF_IMAGE 1 
| #define PCAP_NG_DEFAULT 1 
| #define HAVE_LIBZ 1 
| #define HAVE_INFLATEPRIME 1 
| #define HAVE_LUA_H 1 
| #define HAVE_LUALIB_H 1 
| #define HAVE_LAUXLIB_H 1 
| /* end confdefs.h. */ 
| 
| /* Override any GCC internal prototype to avoid an error. 
| Use char because int might match the return type of a GCC 
| builtin and then its argument prototype would still apply. */ 
| #ifdef __cplusplus 
| extern "C" 
| #endif 
| char luaL_openlibs(); 
| int 
| main() 
| { 
| return luaL_openlibs(); 
| ; 
| return 0; 
| } 
configure:31563: result: no 

내가 지금 경고를 이해하고 해결하기 위해 좀 더 읽습니다 :

다음은 내 의견의 관련 부분이다.

+0

'--with-lua =/usr/local'을 시도하십시오. – siffiejoe

+0

루아 소스 파일에 대한 경로를 넣어 – hjpotter92

+0

의견에 감사드립니다. --with-lua =/usr/local이 도움이되지 않았습니다. 그래서 --with-lua =/usr/local/src/lua-5.2.3을 추가했는데 –

답변

0

sifflejoe의 도움으로 나는 libdl 탐지가 어떻게 든 완벽하게 작동하지 않았다는 것을 추적 할 수있었습니다.

이 문제를 해결했습니다.

관련 문제