Wireshark-dev: [Wireshark-dev] I want to use g_thread_init in dissector source file, but get a
From: lookfar <lookfar@xxxxxxx>
Date: Wed, 24 Aug 2011 15:11:49 +0800 (CST)
Linking libwireshark.dll
        link  /INCREMENTAL:NO /NOLOGO -entry:_DllMainCRTStartup@12 -dll kernel32
.lib  ws2_32.lib mswsock.lib advapi32.lib shell32.lib  /DEBUG /MACHINE:x86 /Safe
SEH /DYNAMICBASE /FIXED:no /MANIFEST:no  /DEF:libwireshark.def /OUT:libwireshark
.dll  /IMPLIB:libwireshark.lib addr_and_mask.obj                 addr_resolv.obj
                 address_to_str.obj      adler32.obj             afn.obj
                 asn1.obj                        atalk-utils.obj
 base64.obj              bitswap.obj             camel-persistentdata.obj
 charsets.obj            circuit.obj             codecs.obj              column.
obj              column-utils.obj                conversation.obj
 crc10.obj                       crc16.obj                       crc32.obj
                 crc6.obj                        crc8.obj
 crcdrm.obj              dissector_filters.obj   emem.obj
 epan.obj                        ex-opt.obj              except.obj
 expert.obj              filesystem.obj          follow.obj              frame_d
ata.obj          frequency-utils.obj     funnel.obj              gcp.obj
                 geoip_db.obj            golay.obj                       guid-ut
ils.obj          h225-persistentdata.obj         in_cksum.obj            ipproto
.obj             ipv4.obj                        next_tvb.obj            nstime.
obj              oids.obj                        osi-utils.obj           packet.
obj              plugins.obj             prefs.obj                       proto.o
bj                       range.obj                       reassemble.obj
 reedsolomon.obj                 report_err.obj          req_resp_hdrs.obj
         sigcomp_state_hdlr.obj  sigcomp-udvm.obj                sminmpec.obj
         sna-utils.obj           stat_cmd_args.obj               stats_tree.obj
         strutil.obj             stream.obj              t35.obj
         tap.obj                         tcap-persistentdata.obj         timesta
mp.obj           tfs.obj                         to_str.obj              tvbpars
e.obj            tvbuff.obj              uat.obj                         value_s
tring.obj                xdlc.obj        dtd_grammar.obj  diam_dict.obj
 dtd_parse.obj           dtd_preparse.obj                radius_dict.obj
         uat_load.obj  c:\wireshark-win32-libs\gtk2\lib\glib-2.0.lib  c:\wiresha
rk-win32-libs\gtk2\lib\gmodule-2.0.lib  c:\wireshark-win32-libs\gtk2\lib\gobject
-2.0.lib         c:\wireshark-win32-libs\c-ares-1.7.1-win32ws\lib\libcares-2.lib
      c:\wireshark-win32-libs\kfw-3-2-2-i386-ws-vc6\lib\krb5_32.lib       c:\wir
eshark-win32-libs\gnutls-2.10.3-1.11-win32ws\bin\libtasn1-3.lib  c:\wireshark-wi
n32-libs\gnutls-2.10.3-1.11-win32ws\bin\libgpg-error-0.lib       c:\wireshark-wi
n32-libs\gnutls-2.10.3-1.11-win32ws\bin\libgcrypt-11.lib  c:\wireshark-win32-lib
s\gnutls-2.10.3-1.11-win32ws\bin\libgnutls-26.lib  c:\wireshark-win32-libs\lua5.
1.4\lua5.1.lib    c:\wireshark-win32-libs\libsmi-svn-40773-win32ws\lib\libsmi-2.
lib  c:\wireshark-win32-libs\GeoIP-1.4.6-win32ws\libGeoIP\GeoIP.lib  ..\wsutil\l
ibwsutil.lib  ..\wiretap\wiretap-1.7.0.lib  crc\crc.lib  crypt\airpdcap.lib  fty
pes\ftypes.lib  dfilter\dfilter.lib  wslua\wslua.lib  wspython\wspython.lib  dis
sectors\dissectors.lib ..\image\libwireshark.res  dissectors\register.obj  asm_u
tils_win32_x86.obj
   正在创建库 libwireshark.lib 和对象 libwireshark.exp
dissectors.lib(packet-ppp.obj) : error LNK2019: 无法解析的外部符号 _g_thread_ini
t,该符号在函数 _proto_register_ppp 中被引用
libwireshark.dll : fatal error LNK1120: 1 个无法解析的外部命令
NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 9.0\VC\BI
N\link.EXE"”: 返回代码“0x460”
Stop.
NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 9.0\VC\BI
N\nmake.exe"”: 返回代码“0x2”
Stop.

My version is wireshark-1.7.0-SVN-38520,I have changed the dissector nmake file to add line like:

CFLAGS= $(WARNINGS_ARE_ERRORS) $(STANDARD_CFLAGS) \
/I. /I.. /I../.. $(GLIB_CFLAGS) \
$(GTHREAD_LIBS) \
# `pkg-config --cflags --libs glib-2.0 gthread-2.0` \
$(ZLIB_CFLAGS) \
$(PCRE_CFLAGS) $(GNUTLS_CFLAGS) $(NETTLE_CFLAGS) \
$(KFW_CFLAGS) $(AIRPCAP_CFLAGS) $(GEOIP_CFLAGS) \
/I$(PCAP_DIR)\include

So it's confusing me deeply.Please do me a favour.

Michael