Le 30 mars 2014 08:58, "我想不无聊" <237825...@qq.com> a écrit : > > I want to store some information about packets and transmit among files,so i create a file in wireshark root directory,named performance.h: > > //performance.h > #include <glib.h> > typedef struct performance_s > { > gfloat time[100]; > gfloat delay[100]; > guint32 packetSize[100]; > guint32 payload; > guint32 index; > guint32 temp_size; > gfloat temp_time; > }performance; > extern peformance* performance_test; > > in the file ,i declare a struct and declare a pointer to it,then i want to use the variable "performance_test" in file wiretap/libpcap.c, epan/dissectors/packet-ieee80211.c,so i define the variable "peformance_test" in performance.c in wireshark root directory and include the head file in wiretap/libpcap.c, epan/dissectors/packet-ieee80211.c ,but once i use the variable in these two files,when i compile the wireshark project,it come up with one error:undefined reference to 'peformance_test'. > > it looks like the variable peformance_test should be defined and used in the same file ,if i want to use it in different files,i think i should modify the makefile.common to change the compile process ,but i don't know how .could someone help me fix it,please!
Hi, Assuming you work on the master branch (Wireshark 1.11.X), if you want to use in libwireshark a variable defined in libwiretap, you should export the symbol with the WS_DLL_PUBLIC macro instead of using extern. Do not forget to include ws_symbol_export.h file also. You can search in the code for examples of the use of this macro. Regards, Pascal.
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe