问题
When I try to build my project on a 64 bit Windows 7 using VS 2010 in Debug 64 bit configuration I get this error along with two other errors.
error: linkage specification is incompatible with previous "hypot" in math.h line 161
error: linkage specification is incompatible with previous "hypotf" in math.h line 161
error: function "abs(long long)" has already been defined in math_functions.h line 534
I do not get these errors in the 32 bit build. Also, the 64 bit build worked in VS2008. Is there a proper work around to this problem or should I just wait till nvcc supports VS 2010 compiler?
回答1:
There have been a few attempts to get VS 2010 support with CUDA (link text) but the only official support that I have seen for VS 2010 has been in Parallel Nsight 1.5, which is currently available as a Release Candidate from NVIDIA's website. From some of the notes, it strangely seems as though it will still require the Visual Studio 2008 compiler to run, just with the properly updated cuda.targets, cuda.xml, etc files.
One thing to check in the meantime though is the lib files you are linking to, are you linking to the 32 or 64 bit files? That could be the source of your issues.
来源:https://stackoverflow.com/questions/3685303/vs2010-compiler-and-cuda-error-linkage-specification-is-incompatible-with-previ