Bonjour,
Je cherche a faire fonctionner un projet Qtcreator existant sous linux vers Windows. Je bute sur la creation du fichier .pro.
J'ai des fichiers cpp et cu qui cohabitent sur le même projet. Ce que je faisait sous linux c'est qu je linkais tous les fichiers cu et je compile le fichier avec les autres cpp. Ca donne ca:
1 2 3 4 5 6 7 8 9 10 11
| cuda.input = CUDA_SOURCES
cuda.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
cuda.commands = $$CUDA_DIR/bin/nvcc -dlink $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -gencode arch=compute_50,code=compute_50 -gencode arch=compute_52,code=compute_52 -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda
cudaLINK.input = CUDA_SOURCES
cudaLINK.output = $$CUDA_OBJECTS_DIR/${TARGET}_cuda.o
cudaLINK.commands = $$CUDA_DIR/bin/nvcc -ccbin g++ -dlink $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -gencode arch=compute_50,code=compute_50 -gencode arch=compute_52,code=compute_52 fichier1_cuda.o fichier2_cuda.o fichier3_cuda.o fichier4_cuda.o -o ${TARGET}_cuda.o
QMAKE_EXTRA_COMPILERS += cudaLINK |
Mais sur windows ca ne fonctionne pas pareil. Déjà ce que j'ai compris c'est que sous windows Cuda n'est disponible qu'en 32 bit avec le compilateur de MCVS. J'ai ajouté ces extra compilers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
cuda.input = CUDA_SOURCES
cuda.output = ${QMAKE_FILE_BASE}_cuda.o
cuda.commands = $$CUDA_DIR/bin/nvcc.exe -dlink $$NVCC_OPTIONS $$CUDA_INC $$LIBSCUDA \
--machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH \
--compile -cudart static -DWIN32 -D_MBCS \
-Xcompiler "/wd4819,/EHsc,/W3,/nologo,/O2,/Zi" \
-Xcompiler $$MSVCRT_LINK_FLAG_RELEASE \
-c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda
cudaLINK.input = CUDA_SOURCES
cudaLINK.output = OUT_cuda.o
cudaLINK.commands = $$CUDA_DIR/bin/nvcc.exe -ccbin g++ -dlink $$NVCC_OPTIONS $$CUDA_INC $$LIBS \
--machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH \
Blending_cuda.o CCL_cuda.o -o $$CUDA_OBJECTS_DIR/$${TARGET}.obj
cudaLINK.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cudaLINK |
Mais ca me génére des erreurs. J'ai essayé de faires les commandes à la main sur le terminal et quand je génére cette commande:
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0/bin/nvcc.exe" -ccbin g++ -dlink --use_fast_math -I"C:\opencv\build\include" -I"C:\opencv\build\include\opencv" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0/include" -I"C:/ProgramData/NVIDIA Corporation/CUDA Samples/v8.0/common/inc/" -I"C:/ProgramData/NVIDIA Corporation/CUDA Samples/v8.0/../shared/inc/" C:\opencv\build\x86\vc12\lib\opencv_core2413.lib C:\opencv\build\x86\vc12\lib\opencv_imgproc2413.lib C:\opencv\build\x86\vc12\lib\opencv_highgui2413.lib C:\opencv\build\x86\vc12\lib\opencv_objdetect2413.lib C:\opencv\build\x86\vc12\lib\opencv_calib3d2413.lib -lcuda -lcudart --machine 32 -arch=compute_50 fichier1_cuda.o fichier2_cuda.o -o release/obj/untitled.obj
Il n'a pas d'erreur mais la commande ne me génére rien.
Quelqu'un s'aurait de ou ca peut venir?
Partager