[問題] qt與cuda做結合

看板C_and_CPP作者時間15年前 (2010/12/31 02:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(Platform): Linux *[m 額外使用到的庫(Library Used) (Ex: OpenGL, ...) Qt , cuda 問題(Question): 原本就將程式寫好,全部使用Qt來寫,但是現在要將計算的部份 搬遷到GPU上,使用cuda來計算。 所以要將某個class內的計算改成呼叫cuda。 但是現在就是不清楚如何改寫makefile, 來將cuda編譯出的.o 與原本的Qt程式做連結。 程式碼(Code): (請善用置底文標色功能) 以下為makefile檔案 計算的部份是在potential.cpp 網址: http://nopaste.csie.org/16de7 ############################################################################# # Makefile for building: li_project_v035 # Generated by qmake (2.01a) (Qt 4.7.0) on: ?? 12? 16 05:28:38 2010 # Project: li_project_v035.pro # Template: app # Command: /usr/local/Trolltech/Qt-4.7.0/bin/qmake -spec /usr/local/Trolltech/Qt-4.7.0/mkspecs/linux-g++-64 -o Makefile li_project_v035.pro ############################################################################# ####### Compiler, tools and options CC = gcc CXX = g++ DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED CFLAGS = -m64 -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) CXXFLAGS = -m64 -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) INCPATH = -I/usr/local/Trolltech/Qt-4.7.0/mkspecs/linux-g++-64 -I. -I/usr/local/Trolltech/Qt-4.7.0/include/QtCore -I/usr/local/Trolltech/Qt-4.7.0/include/QtGui -I/usr/local/Trolltech/Qt-4.7.0/include -I. -I. -I. LINK = g++ LFLAGS = -m64 -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt-4.7.0/lib LIBS = $(SUBLIBS) -L/usr/local/Trolltech/Qt-4.7.0/lib -lQtGui -L/usr/local/Trolltech/Qt-4.7.0/lib -L/usr/X11R6/lib64 -lQtCore -lpthread AR = ar cqs RANLIB = QMAKE = /usr/local/Trolltech/Qt-4.7.0/bin/qmake TAR = tar -cf COMPRESS = gzip -9f COPY = cp -f SED = sed COPY_FILE = $(COPY) COPY_DIR = $(COPY) -r STRIP = strip INSTALL_FILE = install -m 644 -p INSTALL_DIR = $(COPY_DIR) INSTALL_PROGRAM = install -m 755 -p DEL_FILE = rm -f SYMLINK = ln -f -s DEL_DIR = rmdir MOVE = mv -f CHK_DIR_EXISTS= test -d MKDIR = mkdir -p ####### Output directory OBJECTS_DIR = ./ ####### Files SOURCES = bit.cpp \ bitmap.cpp \ configuration.cpp \ main.cpp \ mainwindow.cpp \ myitem.cpp \ myqrunnable.cpp \ myscene.cpp \ obstacle.cpp \ polygon.cpp \ pot.cpp \ poten.cpp \ potential.cpp \ robot.cpp moc_mainwindow.cpp OBJECTS = bit.o \ bitmap.o \ configuration.o \ main.o \ mainwindow.o \ myitem.o \ myqrunnable.o \ myscene.o \ obstacle.o \ polygon.o \ pot.o \ poten.o \ potential.o \ robot.o \ moc_mainwindow.o DIST = /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/g++.conf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/unix.conf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/linux.conf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/qconfig.pri \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/modules/qt_webkit_version.pri \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt_functions.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt_config.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/exclusive_builds.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/default_pre.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/release.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/default_post.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/warn_on.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/unix/thread.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/moc.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/resources.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/uic.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/yacc.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/lex.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/include_source_dir.prf \ li_project_v035.pro QMAKE_TARGET = li_project_v035 DESTDIR = TARGET = li_project_v035 first: all ####### Implicit rules .SUFFIXES: .o .c .cpp .cc .cxx .C .cpp.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .cxx.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .C.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" .c.o: $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" ####### Build rules all: Makefile $(TARGET) $(TARGET): ui_mainwindow.h $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) Makefile: li_project_v035.pro /usr/local/Trolltech/Qt-4.7.0/mkspecs/linux-g++-64/qmake.conf /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/g++.conf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/unix.conf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/linux.conf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/qconfig.pri \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/modules/qt_webkit_version.pri \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt_functions.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt_config.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/exclusive_builds.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/default_pre.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/release.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/default_post.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/warn_on.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/unix/thread.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/moc.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/resources.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/uic.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/yacc.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/lex.prf \ /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/include_source_dir.prf \ /usr/local/Trolltech/Qt-4.7.0/lib/libQtGui.prl \ /usr/local/Trolltech/Qt-4.7.0/lib/libQtCore.prl $(QMAKE) -spec /usr/local/Trolltech/Qt-4.7.0/mkspecs/linux-g++-64 -o Makefile li_project_v035.pro /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/g++.conf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/unix.conf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/common/linux.conf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/qconfig.pri: /usr/local/Trolltech/Qt-4.7.0/mkspecs/modules/qt_webkit_version.pri: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt_functions.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt_config.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/exclusive_builds.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/default_pre.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/release.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/default_post.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/warn_on.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/qt.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/unix/thread.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/moc.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/resources.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/uic.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/yacc.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/lex.prf: /usr/local/Trolltech/Qt-4.7.0/mkspecs/features/include_source_dir.prf: /usr/local/Trolltech/Qt-4.7.0/lib/libQtGui.prl: /usr/local/Trolltech/Qt-4.7.0/lib/libQtCore.prl: qmake: FORCE @$(QMAKE) -spec /usr/local/Trolltech/Qt-4.7.0/mkspecs/linux-g++-64 -o Makefile li_project_v035.pro dist: @$(CHK_DIR_EXISTS) .tmp/li_project_v0351.0.0 || $(MKDIR) .tmp/li_project_v0351.0.0 $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/li_project_v0351.0.0/ && $(COPY_FILE) --parents bit.h bitmap.h configuration.h dataclass.h mainwindow.h myitem.h myqrunnable.h myscene.h obstacle.h polygon.h pot.h poten.h potential.h robot.h .tmp/li_project_v0351.0.0/ && $(COPY_FILE) --parents bit.cpp bitmap.cpp configuration.cpp main.cpp mainwindow.cpp myitem.cpp myqrunnable.cpp myscene.cpp obstacle.cpp polygon.cpp pot.cpp poten.cpp potential.cpp robot.cpp .tmp/li_project_v0351.0.0/ && $(COPY_FILE) --parents mainwindow.ui .tmp/li_project_v0351.0.0/ && (cd `dirname .tmp/li_project_v0351.0.0` && $(TAR) li_project_v0351.0.0.tar li_project_v0351.0.0 && $(COMPRESS) li_project_v0351.0.0.tar) && $(MOVE) `dirname .tmp/li_project_v0351.0.0`/li_project_v0351.0.0.tar.gz . && $(DEL_FILE) -r .tmp/li_project_v0351.0.0 clean:compiler_clean -$(DEL_FILE) $(OBJECTS) -$(DEL_FILE) *~ core *.core ####### Sub-libraries distclean: clean -$(DEL_FILE) $(TARGET) -$(DEL_FILE) Makefile check: first mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all compiler_moc_header_make_all: moc_mainwindow.cpp compiler_moc_header_clean: -$(DEL_FILE) moc_mainwindow.cpp moc_mainwindow.cpp: myscene.h \ myitem.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h \ potential.h \ bit.h \ pot.h \ poten.h \ mainwindow.h /usr/local/Trolltech/Qt-4.7.0/bin/moc $(DEFINES) $(INCPATH) mainwindow.h -o moc_mainwindow.cpp compiler_rcc_make_all: compiler_rcc_clean: compiler_image_collection_make_all: qmake_image_collection.cpp compiler_image_collection_clean: -$(DEL_FILE) qmake_image_collection.cpp compiler_moc_source_make_all: compiler_moc_source_clean: compiler_uic_make_all: ui_mainwindow.h compiler_uic_clean: -$(DEL_FILE) ui_mainwindow.h ui_mainwindow.h: mainwindow.ui /usr/local/Trolltech/Qt-4.7.0/bin/uic mainwindow.ui -o ui_mainwindow.h compiler_yacc_decl_make_all: compiler_yacc_decl_clean: compiler_yacc_impl_make_all: compiler_yacc_impl_clean: compiler_lex_make_all: compiler_lex_clean: compiler_clean: compiler_moc_header_clean compiler_uic_clean ####### Compile bit.o: bit.cpp bit.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bit.o bit.cpp bitmap.o: bitmap.cpp bitmap.h \ obstacle.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bitmap.o bitmap.cpp configuration.o: configuration.cpp dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o configuration.o configuration.cpp main.o: main.cpp mainwindow.h \ myscene.h \ myitem.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h \ potential.h \ bit.h \ pot.h \ poten.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp mainwindow.o: mainwindow.cpp potential.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h \ bit.h \ pot.h \ poten.h \ mainwindow.h \ myscene.h \ myitem.h \ myqrunnable.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp myitem.o: myitem.cpp myitem.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o myitem.o myitem.cpp myqrunnable.o: myqrunnable.cpp myqrunnable.h \ myitem.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o myqrunnable.o myqrunnable.cpp myscene.o: myscene.cpp myscene.h \ myitem.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o myscene.o myscene.cpp obstacle.o: obstacle.cpp dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obstacle.o obstacle.cpp polygon.o: polygon.cpp dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o polygon.o polygon.cpp pot.o: pot.cpp pot.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pot.o pot.cpp poten.o: poten.cpp poten.h \ pot.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o poten.o poten.cpp potential.o: potential.cpp potential.h \ dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h \ bit.h \ pot.h \ poten.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o potential.o potential.cpp robot.o: robot.cpp dataclass.h \ configuration.h \ polygon.h \ robot.h \ obstacle.h \ bitmap.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o robot.o robot.cpp moc_mainwindow.o: moc_mainwindow.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp ####### Install install: FORCE uninstall: FORCE FORCE: 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.26.188
文章代碼(AID): #1D7C_tgO (C_and_CPP)