veracrypt/VeraCrypt

wxWidgets compile fails with invalid options provided by VeraCrypt Makefile

dooferorg opened this issue · 2 comments

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

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
     |         ^~~~~~~~~~~

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.