veracrypt / VeraCrypt

Disk encryption with strong security based on TrueCrypt
https://www.veracrypt.fr
Other
6.9k stars 947 forks source link

wxWidgets compile fails with invalid options provided by VeraCrypt Makefile #1336

Open dooferorg opened 6 months ago

dooferorg commented 6 months ago

I downloaded the VeraCrypt source release 1.26.7. I am compiling for Linux (Debian 12) on a headless non gui server system so I checked out the github for wxWidgets and ran

make NOGUI=1 WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild

I got an error:

Configuring wxWidgets library... configure: error: unrecognized options: --enable-unicode, --enable-std_string

I edited the VeraCrypt Makefile on line 481 and removed the offending options, then it compiled ok.

Just wanted to pass it on.

Edit:

Further to this I wonder if there's just an incompatibility with the wxWidgets I pulled in and the VeraCrypt codebase at this time. When compiling VeraCrypt I am getting these errors now:

Precompiling SystemPrecompiled.h
Compiling Application.cpp
Application.cpp: In static member function ‘static VeraCrypt::FilePath VeraCrypt::Application::GetConfigFilePath(const wxString&, bool)’:
Application.cpp:92:24: error: ‘wxScopedPtr’ does not name a type
   92 |                 static wxScopedPtr<const wxString> configDirC;
      |                        ^~~~~~~~~~~
Application.cpp:97:30: error: ‘configDirC’ was not declared in this scope
   97 |                         if (!configDirC)
      |                              ^~~~~~~~~~
Application.cpp:117:51: error: ‘configDirC’ was not declared in this scope
  117 |                                 if (!wxDirExists(*configDirC))
      |                                                   ^~~~~~~~~~
Application.cpp:129:35: error: ‘configDirC’ was not declared in this scope
  129 |                 return FilePath((*configDirC + configFileName).ToStdWstring());
      |                                   ^~~~~~~~~~
make[1]: *** [/usr/src/VeraCrypt-VeraCrypt_1.26.7/src/Build/Include/Makefile.inc:37: Application.o] Error 1
make: *** [Makefile:520: all] Error 2
dooferorg commented 6 months ago

Downloaded wxWidgets 3.2.4 from the releases on the github, removed the previous wxWidgets and VeraCrypt sources dirs.

Unpacked VeraCrypt 1.26.7 and wxWidgets 3.2.4.

Now compiling gets me this:

# make NOGUI=1 WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets-3.2.4 wxbuild
Configuring wxWidgets library...
configure: WARNING: XML library not built, cannot build wxrc
configure: WARNING: libsecret not found, wxSecretStore won't be available
configure: WARNING: Disabling wxWebRequest because no backends are available
Building wxWidgets library...
In file included from /usr/src/wxWidgets-3.2.4/src/common/extended.c:14:
/usr/src/wxWidgets-3.2.4/include/wx/defs.h:509:9: warning: "__cplusplus" is not defined, evaluates to 0 [-Wundef]
  509 |     #if __cplusplus >= 201103L
      |         ^~~~~~~~~~~
Jertzukka commented 6 months ago

In your first post you're attempting to build against master branch of wxWidgets which is not backwards compatible to 3.2 branch. The warning you get in your second post is only a warning and does not prevent the wxWidgets from building, just run the same command without wxbuild after it the build finishes.