Hello
I have a simple Matrix Multiplication Example,
I use cmake 2.8.4, windows 7, cuda 4.0 64bit, and generate a VS 2010 file.
The nvcc compiles the necessary file .cu but there are stupid linking problems when VS tries to link.
Everything is compiled with /MDd.
I realized that the path to the CC compiler “-ccbin” is set to : -ccbin “C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin”
and is not set to: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64
Could that be the problem!? I Attached the complete Build Folder probably needs a rebuild with cmake, its already generated so If somebody could have a look what the problem is, would be really really great!
Here is the output:
1>------ Build started: Project: MatrixTest, Configuration: Debug x64 ------
1>Build started 5/20/2011 6:30:07 PM.
1>InitializeBuildStatus:
1> Touching "MatrixTest.dir\Debug\MatrixTest.unsuccessfulbuild".
1>CustomBuild:
1> All outputs are up-to-date.
1> Building NVCC (Device) object MatrixTest/Debug/MatrixTest_generated_KernelsCuda.cu.obj
1> -- Removing C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/Debug/MatrixTest_generated_KernelsCuda.cu.obj
1>
1> "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe" -E remove C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/Debug/MatrixTest_generated_KernelsCuda.cu.obj
1>
1> -- Generating dependency file: C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.NVCC-depend
1>
1> "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/bin/nvcc.exe" -M -D__CUDACC__ E:/GabrielNuetzi/Repository/cudaTest/Projects/CUDA/CommonSource/src/KernelsCuda.cu -o C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.NVCC-depend -ccbin "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin" -m64 -Xcompiler ,\"/DWIN32\",\"/D_WINDOWS\",\"/W3\",\"/Zm1000\",\"/EHsc\",\"/GR\",\"/D_DEBUG\",\"/MDd\",\"/Zi\",\"/Ob0\",\"/Od\",\"/RTC1\" -DNVCC "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/include" "-IC:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" "-IC:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/shared/inc" -IC:/Develop/Boost/boost_x64_1_46_1 -IE:/GabrielNuetzi/Repository/cudaTest/Projects/CUDA/MatrixTest/inc -IE:/GabrielNuetzi/Repository/cudaTest/Projects/CUDA/CommonSource/inc "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/include"
1>
1> KernelsCuda.cu
1> KernelsCuda.cu
1> -- Generating temporary cmake readable file: C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend.tmp
1>
1> "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe" -D input_file:FILEPATH=C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.NVCC-depend -D output_file:FILEPATH=C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend.tmp -P "C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA/make2cmake.cmake"
1>
1> -- Copy if different C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend.tmp to C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend
1>
1> "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe" -E copy_if_different C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend.tmp C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend
1>
1> -- Removing C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend.tmp and C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.NVCC-depend
1>
1> "C:/Program Files (x86)/CMake 2.8/bin/cmake.exe" -E remove C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.depend.tmp C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/CMakeFiles/MatrixTest_generated_KernelsCuda.cu.obj.NVCC-depend
1>
1> -- Generating C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/Debug/MatrixTest_generated_KernelsCuda.cu.obj
1>
1> "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/bin/nvcc.exe" E:/GabrielNuetzi/Repository/cudaTest/Projects/CUDA/CommonSource/src/KernelsCuda.cu -c -o C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/Debug/MatrixTest_generated_KernelsCuda.cu.obj -ccbin "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin" -m64 -Xcompiler ,\"/DWIN32\",\"/D_WINDOWS\",\"/W3\",\"/Zm1000\",\"/EHsc\",\"/GR\",\"/D_DEBUG\",\"/MDd\",\"/Zi\",\"/Ob0\",\"/Od\",\"/RTC1\" -DNVCC "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/include" "-IC:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/C/common/inc" "-IC:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.0/shared/inc" -IC:/Develop/Boost/boost_x64_1_46_1 -IE:/GabrielNuetzi/Repository/cudaTest/Projects/CUDA/MatrixTest/inc -IE:/GabrielNuetzi/Repository/cudaTest/Projects/CUDA/CommonSource/inc "-IC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/include"
1>
1> KernelsCuda.cu
1> tmpxft_000009d4_00000000-3_KernelsCuda.cudafe1.gpu
1> tmpxft_000009d4_00000000-8_KernelsCuda.cudafe2.gpu
1> KernelsCuda.cu
1> tmpxft_000009d4_00000000-3_KernelsCuda.cudafe1.cpp
1> tmpxft_000009d4_00000000-14_KernelsCuda.ii
1>
1> Generated C:/Users/ZfMGPU/Desktop/ToMyFolder/Repository/cudaTest/Projects/CUDA/BUILD/MatrixTest/Debug/MatrixTest_generated_KernelsCuda.cu.obj successfully.
1>ClCompile:
1> All outputs are up-to-date.
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(int)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > & (__cdecl*)(class std::basic_ostream<char,struct std::char_traits<char> > &))" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(float)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __cdecl std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,__int64)" (?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __cdecl std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __cdecl std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __cdecl std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(double)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::pbase(void)const " (?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::pbump(int)" (?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::gbump(int)" (?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::eback(void)const " (?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::pptr(void)const " (?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::setg(char *,char *,char *)" (?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::egptr(void)const " (?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::setp(char *,char *)" (?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::epptr(void)const " (?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::widen(char)const " (?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __cdecl std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" (??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __cdecl std::basic_ostream<char,struct std::char_traits<char> >::~basic_ostream<char,struct std::char_traits<char> >(void)" (??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __cdecl std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "protected: __cdecl std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::locale __cdecl std::basic_ios<char,struct std::char_traits<char> >::imbue(class std::locale const &)" (?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __cdecl std::basic_ios<char,struct std::char_traits<char> >::clear(int,bool)" (?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::fill(char)" (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(unsigned __int64)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(unsigned int)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z) already defined in MatrixTest_generated_KernelsCuda.cu.obj
1>C:\Users\ZfMGPU\Desktop\ToMyFolder\Repository\cudaTest\Projects\CUDA\BUILD\MatrixTest\Debug\MatrixTest.exe : fatal error LNK1169: one or more multiply defined symbols found
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:05.29
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
Thanks for the inputs!
CUDA.zip (67 KB)