Compiling FFTW 3.3.4 With Visual Studio 2013 - c++

Has anyone managed to compile the latest release of FFTW 3.3.4 using the Visual C++ compiler? I'm aware that the project maintainers offer pre-compiled dll's that were built with MinGW, but I'm looking to compile them myself.
So far, I've downloaded the source (of course), and I am trying to use one of the pre-made VS solutions that was reported to work for Visual Studio 2010 and FFTW 3.3, but when I'm building, I'm getting a few "unresolved external" errors like the following:
Error 1259 error LNK2019: unresolved external symbol _fftwf_mkprinter_str referenced in function _fftwf_export_wisdom_to_string C:\Users\bryan\Downloads\fftw-3.3.4\fftw-3.3.4\fftw-3.3-libs\libfftwf-3.3\export-wisdom-to-string.obj libfftwf-3.3
I know this is a bit of a stretch, but has anyone built FFTW 3.3.4 using Visual Studion 2013?

I have had the same problem.
Take a look on
http://wiki.panotools.org/Hugin_SDK_%28MSVC_2013%29
There is explained how you can build libfftw-3.3
In the same way you can build libfftwf-3.3
To build bench and benchf you have to remove '....\libbench2\aligned-main.c'
That is explained here (commentar 6)
Compiling FFTW source in Visual studio

Related

lib built in vs c++ 2005 How to use them in vs 2017?

I have the following problem: I have a library, let's call it library.lib that is written in VS C++ 2005. In VS 2017 I've got the following error when compiling:
LINK : fatal error C1047: The object or library file 'library.lib' was created with an older compiler than other objects; rebuild old objects and libraries
Could you help me to solve it? Possibly I have to run VS 2005. However, I cannot install it. I have Windows 10 and the installer does not work.
Pol
is there anybody here, who might help, the project cannot wait?

MSVC 2015 using 2013 Platform Toolset

I have a copy of Microsoft Visual 2015 on a Windows 32 bit Computer. I would like to compile C++ code with a 2013 build set. I have researched this issue, and I am unfortunately very stuck and looking for guidance.
As you can see in my configurations (below), I have options of platform toolset for 2010 and 2008 in addition to the 2015 versions. I have downloaded Visual Studio 2013. Alas, the option does not appear to be added to the toolset choices!
My ultimate problem I am trying to solve is an error I get when I build code. Specifically:
Severity Code Description Project File Line Suppression State
Error LNK2001 unresolved external symbol
_WinMain#16 TestProject C:\Users\userProf\Desktop\workspace\TestProject\TestProject\MSVCRTD.lib(exe_winmain.obj)
Severity Code Description Project File Line Suppression State
Error LNK2001 unresolved external symbol
__imp__vsnprintf_s TestProject C:\Users\uperProf \Desktop\workspace\TestProject\TestProject\MSVCRTD.lib(vsnprintf_s.obj)
System Specs:
Some research:
https://social.msdn.microsoft.com/Forums/en-US/2f2bb34b-f8f2-4316-80e5-fd2b0d237e17/visual-studio-2013-v110-platform-toolset?forum=visualstudiogeneral
TFS Build 2013 - using Visual Studio 2015
Thanks in advance.
The "ultimate" problem seems fairly trivial. You've got a MSVC library in your project directory! That's bound to give version issues. Just remove it; MSVC finds its own libraries in its own install directory.

Accommodate VS2013 project to VS2015

So I've recently upgraded VS2013 to VS2015 and I'm still struggling accommodating the code & project's definitions to make it work.
I have dozens of projects in my solution. I also use jsoncpp as an additional lib.
When compiling a single project, I get this error:
3>LINK : fatal error C1047: The object or library file '..\Libs\json_cpp\build\vs71\release\lib_json\json_vc71_libmt.lib' was created with an older compiler than other objects; rebuild old objects and libraries
So I've open the Libs\json_cpp\makefiles\vs71\jsoncpp.sln with VS2015 and rebuild the solution.
that didn't help.
Possible Reason
My projects are all using Platform Toolset Visual Studio 2015 - Windows XP (v140_xp)
while the jsoncpp Platform Toolset is Visual Studio 2013 - Windows XP (v120_xp)
If this is indeed the issue so the obvious solution is to have both solutions compile in the same Platform Toolset Visual Studio 2015 - Windows XP (v140_xp).
Possible Solution
So, I've tried that. and got countless of these warnings:
json_value.obj : warning LNK4006: "public: static int const std::numeric_limits<unsigned short>::digits10" (?digits10#?$numeric_limits#G#std##2HB) already defined in json_writer.obj; second definition ignored
Anybody else suffered from this agonizing process of VS upgrade and can share some insights?

Linking zlib in Visual Studio 2012

I have a C++ program that compiled and ran fine on Linux that I am now trying to compile on a Windows machine in Visual Studio. The main problem I'm facing is the following error message:
error LNK2019: unresolved external symbol _gzread referenced in function
I have downloaded the zlib library and attempted to link it to my project, but apparently unsuccessfully. I'd appreciate clear instructions on how to link this to my project. The less you assume in your instructions, the better, as I'm relatively new to Visual Studio.
Found the solution. Even though I'm working on a 64-bit machine, VS was compiling in 32-bit mode. I just used the 32-bit version of zlibwapi instead of the 64-bit version and it worked.

How to convert a C++ program that uses CUDA into MEX

For work, I am converting the Image Denoising program that comes with the CUDA SDK into a MATLAB program. As far as I know, I have made all the necessary changes required by MATLAB, but when I try to call mex on it, MATLAB returns a bunch of linkage errors that I have no idea how to fix. If anyone has any suggestions on what I might be doing wrong, I would greatly appreciate it.
The command I am giving MATLAB is:
mex imageDenoisingGL.cpp -I..\..\common\inc -IC:\CUDA\include -L..\..\common\lib -lglut32
And the output from MATLAB is a bunch of these:
imageDenoisingGL.obj : error LNK2019: unresolved external symbol __imp__cutCheckCmdLineFlag#12 referenced in function "void __cdecl __cutilExit(int,char * *)" (?__cutilExit##YAXHPAPAD#Z)
I am running:
Windows XP x32
Visual Studio 2005
MATLAB 2007a
You need to link the CUDA libraries to your MEX file. It looks like you're also using some of the "cutil.h" stuff from the CUDA SDK (such as cutCheckCmdLineFlag), so you'll need to link against not only the cudart library, but also cutil. I.e. you probably need to add something like
-Lc:\CUDA\lib -lcudart -lcuda -L<path-to-cutil.lib> -lcutil
to your MEX command-line.
If you are converting from CUDA to MATLAB, then why are you still calling the CUDA functions?
unresolved external symbol
__imp__cutCheckCmdLineFlag#12
High Performance Mark is suggesting, in his comment, to compile mexfiles using CUDA directly under Visual Studio. At the page
Compiling CUDA mex files with Visual Studio
it is described how the compile mexfiles using CUDA under Visual Studio. There is also a downloadable Visual Studio sample project.
The procedure has been tested for CUDA 5.0, Visual Studio 2010 and Matlab 2010a/2012b, but perhaps it could be of interest also to people using other versions of the above products.