FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
 All Forums
 FastFieldSolvers
 FasterCap and FastCap2
 Compiling FasterCap CodeBlocks wxWidgets
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

brodym

USA
19 Posts

Posted - Jul 09 2019 :  00:42:21  Show Profile  Reply with Quote
Enrico,

As pointed out in another post, I have been able to compile FasterCap on both Windows and Linux, although it took me a long time to figure out. In both Windows and Linux, the application seems to function okay, except for the automation in the Windows version. When I build FasterCap and replace the exe file that was produced during the FastFieldSolvers bundle installation (C:\Program Files (x86)\FastFieldSolvers\FasterCap\FasterCap.exe), it will not run without moving the libgomp_64-1.dll file out of the folder. If I do not move the library, I get an error:

"FasterCap.exe - Entry Point Not Found

The procedure entry point GOMP_parallel could not be located in the dynamic link library C:\Program Files(x86)\FastFieldSolvers\FasterCap\FasterCap.exe"

I am wondering if this has something to do with my CodeBlocks compilation. I am using Windows 10, CodeBlocks 17.12. I built wxWidgets 3.0.4 with TDM-GCC 5.1.0. During the wxWidgets compilation, I built both debug and release versions. UNICODE=1, SHARED=0. I have also tried SHARED=1, but when I execute in the installation directory, I get an error asking for my libraries.

Also, when I compiled for Win64_Release, I was forced to change the search directories from ..gcc_lib.. to gcc_lib64. Or in the case of the SHARED=1 build, ..gcc_dll64.

Which CodeBlocks and wxWidgets settings do you recommend?

Thank you


Brody Mahoney

brodym

USA
19 Posts

Posted - Jul 09 2019 :  02:02:51  Show Profile  Reply with Quote
Okay, I figured out the issue. While there is obviously many ways to build, the issue in my case was centered around which version TDM-GCC is used to compile. If you are using 5.1.0 (and not 4.8.1 as was recommended), then you must replace the libgomp_64-1.dll that is residing in the installation directory. I had to download gcc-5.1.0-tdm64-1-openmp.zip to get the new version. Once I replaced the original dll with the new version, the automation features worked just fine.

Also worth noting, I had trouble using wxWidgets versions newer than 3.0.4.

While all this may change in the future, here is a recap of my settings for those wanting to compile and having similar issues. Note I am not a software developer, and I am new to both CodeBlocks and wxWidgets, as well as compiling in Windows. So for us newbs, hopefully the following is helpful:

Setup:
Windows 10
CodeBlocks 17.12
wxWidgets 3.0.4
TDM-GCC 5.1.0 and respective version of libgomp_64-1.dll.

To build wxWidgets in the Windows 10 powershell, go to the build\msw folder and enter the following depending on if you want to do debug or release or both:

C:\TDM-GCC-64\bin\mingw32-make.exe -j4 -f .\makefile.gcc CFG=64 CXXFLAGS="-std=gnu++11" BUILD=release UNICODE=1 SHARED=0 clean

C:\TDM-GCC-64\bin\mingw32-make.exe -j4 -f .\makefile.gcc CFG=64 CXXFLAGS="-std=gnu++11" BUILD=debug UNICODE=1 SHARED=0 clean

C:\TDM-GCC-64\bin\mingw32-make.exe -j4 -f .\makefile.gcc CFG=64 CXXFLAGS="-std=gnu++11" BUILD=release UNICODE=1 SHARED=0

C:\TDM-GCC-64\bin\mingw32-make.exe -j4 -f .\makefile.gcc CFG=64 CXXFLAGS="-std=gnu++11" BUILD=debug UNICODE=1 SHARED=0

Change the -j option number to the corresponding number of cores your CPU has.

A SHARED=1 build works too, but requires you to include a couple of dll files with the executable: wxbase30u_gcc_custom.dll and wxmsw30u_core_gcc_csutom.dll. If things aren't right the pop-up error window will tell you what's missing.

I am not sure if a clean is necessary, but if you do issue that command, when you try to rebuild some errors may happen regarding missing items. Just re-issue the command a couple times. I think clean deletes some of the output folders.

TDM-GCC-64 5.1.0 generates files in lib\gcc_lib64 folders. So in CodeBlocks, after you set the compiler to TDM-GCC 5.1.0 and global variables to wxWidgets base folder, a couple of small changes are needed in Build options:

Under FasterCap, Build Options the Search directories must be modified:

Change:
$(#wx)\lib\gcc_lib..

to

$(#wx)\lib\gcc_lib64..

in the Compiler, Linker and Resource compiler tabs.

If you are choosing the SHARED=1 build, change the search paths from gcc_lib64 to gcc_dll64.

I also selected "Have g++ follow the C++11 ISO C++ language standard [-std=c++11]" flag to be consistent, but I am not sure if it will make a difference.

$(#wx)\lib\gcc_lib64\mswu


Brody Mahoney
Go to Top of Page

brodym

USA
19 Posts

Posted - Jul 09 2019 :  07:22:10  Show Profile  Reply with Quote
Also, when installing TDM-GCC make sure that you select OpenMP as it is not installed by default. FasterCap will not build without that.

Brody Mahoney
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
FastFieldSolvers Forum © 2020 FastFieldSolvers S.R.L. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.06