Hello, I recently pulled last Wireshark update from git repo and merged with my branch. After resovling some conflict I had, I realized there was some changes in plugin dir so I added CMakelists.txt en modified my Makefile.nmake/plugin.rc.in/Makefile.common/Makefile.am file in my plugin dir. But now I'm having an issue with the gcrypt.h, "wireshark\wsutil/wsgcrypt.h(36) : fatal error C1083: Cannot open include file 'gcrypt.h' : No such file or directory" I tried to link the lib by adding ....\wsutil\libwsutil.lib without any good result. When I try to add GCRYPT_LIBS or GNUTLS_DIR I got command line warnings and unresolved external symbol error. Does something else has changed ? Or maybe I'm doing something wrong ? asked 02 Feb '15, 07:18 Afrim showing 5 of 6 show 1 more comments |
One Answer:
Just because something merges doesn't mean it will build. Without changing anything else, merge your changes, cd into your plugins directory and answered 03 Feb '15, 02:15 grahamb ♦
Here is the output without any changes, the error says he don’t know how to make ‘../../tools/make-dissector-reg’, this is because my makefile.nmake (in my plugin) is old. In fact the directory of myPlugin is old (it’s been awhile since I didn’t merge with the official wireshark repo). So basically I took an exemple in another plugin to update my files. I got 5 plugin but 2 of these need encryption so I need to include wsutil/wsgcrypt.h, but it seems like my plugins didn’t have access to Wireshark lib (The 3 other plugin are building correctly). (03 Feb ‘15, 03:08) Afrim All that’s normal output for building the standard plugins and doesn’t give us any clue what’s up with your plugin. Yes, the plugins build has undergone some changes, you’ll have to adapt the standard plugin build files to compile your plugin and probably modify your plugin as well if the interfaces it uses to Wireshark have changed. Can you try again, this time (03 Feb ‘15, 04:35) grahamb ♦ The build doesn’t even start and there is nothing in tmp.txt. It tells that he don’t know how to make ‘../../tools/make-dissector-reg’ but that’s obvious because there is no more make-dissector-reg. Now if make some changes on my plugin files (makefile.*, plugin.rc.in, etc) to fit with the “new way” i got this output.
(03 Feb ‘15, 05:10) Afrim 1 OK, so it appears that your plugin includes wsgcrypt.h, possibly via other includes, and that file includes the third party gcrypt.h. To allow the compiler to find that include you will need to modify (03 Feb ‘15, 05:40) grahamb ♦ I already did the 2 first steps and it tells me some unresolved external symbol. I’ll try with also the EDIT : in my plugin dir i added then I ran In my opinion there is something wrong because I should see something like (03 Feb ‘15, 05:52) Afrim Ok I resolved my problem It’s Thank you grahamb :) (03 Feb ‘15, 06:16) Afrim Sorry for the typo, got there in the end though. FWIW, I just looked at what the makefile in epan did for including the GNUTLS stuff. (03 Feb ‘15, 06:34) grahamb ♦ showing 5 of 7 show 2 more comments |
What is your OS and how are you configuring and running the build, i.e. autotools\Make or CMake?
Well I'm using running nmake (so OS is windows), don't know if that's what you asked for
Can you build the sources without your changes? This is to determine if the error is in your environment, or your changes.
The reported error is in a core library (wsutil), so it looks like an environment issue.
You mean without my plugin ? Or without all things i've tried to resolve my problem (in Makefile.nmake) ?
Assuming you have copies of all your changes, revert everything back to plain unmodified sources, then
nmake -f Makefile.nmake distclean
and then build again.The build is successfull without any changes. It's weird because before the merge all was OK in my build even with my plugin