[1;36m開發平台(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