Re: [問題] CUDA 光學繞射 error

看板C_and_CPP (C/C++)作者 (aada)時間16年前 (2009/11/20 15:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
以下是我執行的程式過程, 1.建立一個CUDA專案(空專案) 2. 依照http://thegwolibrary.sourceforge.net/ 將專案設定好 3. 把sample code貼上-->執行 一開始沒加#include "stdafx.h"時, complie沒過,說是否缺乏#include "stdafx.h", 後來我加上它後,complie過了,但是出現24個錯誤, #include "gwo.h" #include "stdafx.h" #define WIDTH 512 #define HEIGHT 512 #define WIDTH2 (WIDTH*2) #define HEIGHT2 (HEIGHT*2) float gwo_max=0.0, gwo_min=0.0; //gwoComplex is the complex number. //if you use to the real part of gwoComplex, please use GWO_RE(...). //if you use to the imaginary part of gwoComplex, please use GWO_IM(...). gwoComplex ape_small[WIDTH*WIDTH]; gwoComplex ape[WIDTH2*HEIGHT2]; gwoComplex result[WIDTH*HEIGHT]; unsigned char pix[WIDTH*WIDTH]; void main() { //Prepare an aperture with 20*20 pixel. for(int i=0;i<HEIGHT;i++) { for(int j=0;j<WIDTH;j++) { if(j>WIDTH/2-10 && j<WIDTH/2+10 && i>HEIGHT/2-10 && i<HEIGHT/2+10) { GWO_RE(ape_small[(j)+(i)*WIDTH])=1.0; GWO_IM(ape_small[(j)+(i)*WIDTH])=0.0; } } } //Initialize the library. gwoInit(GWO_ANGULAR,WIDTH2,HEIGHT2); //if you calculate the Angular spectrum //gwoInit(GWO_FRESNEL_CONV,WIDTH2,HEIGHT2);//if you calculate the Fresnel difraction(convolution type) //gwoInit(GWO_SHIFTED_FRESNEL,WIDTH2,HEIGHT2);////if you calculate the Shifted-Fresnel difraction //Expands the original aperture (ape_small). //The expanded aperture (ape) has double size as compared with the original aperture. gwoHostExpandC2C( ape_small,WIDTH,HEIGHT, ape,WIDTH2,HEIGHT2); //Set the sampling spacing (4.65 um) on the aperture and the diffracted plane. gwoSetPitch(4.65e-6, 4.65e-6); //Set the wavelength (633nm). gwoSetWaveLength(633.0e-9); //Send the expanded aperture to the GPU. gwoSendData(ape); //Calculate the diffraction with the propagation distance of 0.2m. gwoCalc(0.2); //If you need the light intensity of the diffracted light, //please execute gwoIntensity(). //If you do not need the light intensity, //please comment out gwoIntensity(); gwoIntensity(); //The host computer receives the calculated result (the diffracted result). gwoReceiveResult(ape); //Reduce the expanded aperture (ape) to the buffer (result). gwoHostExpandC2C( ape,WIDTH2,HEIGHT2, result,WIDTH,HEIGHT); //Search the maximum and minimum value in the buffer (result). gwoHostSearchMaxMin(result,&gwo_max,&gwo_min,WIDTH,HEIGHT); //Convert the light intensity to 256 monochrome image. for(int i=0;i<HEIGHT;i++) { for(int j=0;j<WIDTH;j++) { float tmp=GWO_RE(result[j+i*WIDTH]); unsigned char c=(unsigned char)(255.0*(tmp-gwo_min)/gwo_max); pix[j+i*WIDTH]=c; } } //Finalize the library. gwoFree(); } %%%%%%%%%%%%%%%%%%%% 錯誤 %%%%%%%%%%%%%%%%%%% 1>------ 已開始建置: 專案: popop, 組態: Debug Win32 ------ 1>正在連結... 1>popop.obj : warning LNK4075: 忽略 '/EDITANDCONTINUE',由於 '/INCREMENTAL:NO' 規格 1>popop.obj : error LNK2005: _main 已在 sample.obj 中定義過了 1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已在 LIBCMT.lib(delete.obj) 中定義過了 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __heap_alloc 已在 LIBCMT.lib(malloc.obj) 中定義過了 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __recalloc 已在 LIBCMT.lib(recalloc.obj) 中定義過了 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __msize 已在 LIBCMT.lib(msize.obj) 中定義過了 1>libcmtd.lib(malloc.obj) : error LNK2005: _V6_HeapAlloc 已在 LIBCMT.lib(malloc.obj) 中定義過了 1>libcmtd.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook 已在 LIBCMT.lib(dbghook.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __get_sbh_threshold 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __set_sbh_threshold 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __set_amblksiz 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __get_amblksiz 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_heap_init 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_find_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_free_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_region 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_group 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_resize_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_heapmin 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_heap_check 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_pHeaderDefer 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(isctype.obj) : error LNK2005: __isctype_l 已在 LIBCMT.lib(isctype.obj) 中定義過了 1>libcmtd.lib(isctype.obj) : error LNK2005: __isctype 已在 LIBCMT.lib(isctype.obj) 中定義過了 1>LINK : warning LNK4098: 預設的程式庫 'libcmtd.lib' 與其他使用的程式庫衝突, 請使用 /NODEFAULTLIB:library 1>C:\Documents and Settings\XP\My Documents\Visual Studio 2008\Projects\CUDA\popop\Debug\popop.exe : fatal error LNK1169: 找到有一或多個 已定義的符號 1>已將建置記錄儲存於 "file://c:\Documents and Settings\XP\My Documents\Visual Studio 2008\Projects\CUDA\popop\popop\Debug\BuildLog.htm" 1>popop - 24 個錯誤,2 個警告 ========== 建置: 0 成功、1 失敗、0 最新、0 略過 ==========1>------ 已開始建置: 專案: popop, 組態: Debug Win32 ------ 1>正在連結... 1>popop.obj : warning LNK4075: 忽略 '/EDITANDCONTINUE',由於 '/INCREMENTAL:NO' 規格 1>popop.obj : error LNK2005: _main 已在 sample.obj 中定義過了 1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已在 LIBCMT.lib(delete.obj) 中定義過了 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __heap_alloc 已在 LIBCMT.lib(malloc.obj) 中定義過了 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __recalloc 已在 LIBCMT.lib(recalloc.obj) 中定義過了 1>libcmtd.lib(dbgheap.obj) : error LNK2005: __msize 已在 LIBCMT.lib(msize.obj) 中定義過了 1>libcmtd.lib(malloc.obj) : error LNK2005: _V6_HeapAlloc 已在 LIBCMT.lib(malloc.obj) 中定義過了 1>libcmtd.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook 已在 LIBCMT.lib(dbghook.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __get_sbh_threshold 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __set_sbh_threshold 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __set_amblksiz 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: __get_amblksiz 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_heap_init 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_find_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_free_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_region 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_group 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_resize_block 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_heapmin 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_heap_check 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(sbheap.obj) : error LNK2005: ___sbh_pHeaderDefer 已在 LIBCMT.lib(sbheap.obj) 中定義過了 1>libcmtd.lib(isctype.obj) : error LNK2005: __isctype_l 已在 LIBCMT.lib(isctype.obj) 中定義過了 1>libcmtd.lib(isctype.obj) : error LNK2005: __isctype 已在 LIBCMT.lib(isctype.obj) 中定義過了 1>LINK : warning LNK4098: 預設的程式庫 'libcmtd.lib' 與其他使用的程式庫衝突, 請使用 /NODEFAULTLIB:library 1>C:\Documents and Settings\XP\My Documents\Visual Studio 2008\Projects\CUDA\popop\Debug\popop.exe : fatal error LNK1169: 找到有一或多個 已定義的符號 1>已將建置記錄儲存於 "file://c:\Documents and Settings\XP\My Documents\Visual Studio 2008\Projects\CUDA\popop\popop\Debug\BuildLog.htm" 1>popop - 24 個錯誤,2 個警告 ========== 建置: 0 成功、1 失敗、0 最新、0 略過 ========== -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.193.103
文章代碼(AID): #1B1anblY (C_and_CPP)
文章代碼(AID): #1B1anblY (C_and_CPP)