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