FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 FastFieldSolvers
 FasterCap and FastCap2
 Compiling FasterCap CodeBlocks wxWidgets

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Antispam question: What do MOONwalk and MOONdance have in common?
Answer:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON

 
   

T O P I C    R E V I E W
brodym Posted - Jul 09 2019 : 00:42:21
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
2   L A T E S T    R E P L I E S    (Newest First)
brodym Posted - Jul 09 2019 : 07:22:10
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
brodym Posted - Jul 09 2019 : 02:02:51
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

FastFieldSolvers Forum © 2020 FastFieldSolvers S.R.L. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.06