![为什么 make 会在这个 makefile 中重新生成主可执行文件?](https://linux22.com/image/149636/%E4%B8%BA%E4%BB%80%E4%B9%88%20make%20%E4%BC%9A%E5%9C%A8%E8%BF%99%E4%B8%AA%20makefile%20%E4%B8%AD%E9%87%8D%E6%96%B0%E7%94%9F%E6%88%90%E4%B8%BB%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有以下 makefile:
############################################################################################################################################
######################################################### Makefile fot HypeRvieW ###########################################################
############################################################################################################################################
###################################################################################
#################################### Variables ####################################
CC=gcc
CPLUS=g++
DIR=HypeRvieW
GTK_LIB=`pkg-config --libs gtk+-3.0` -DGL_GLEXT_PROTOTYPES -lGL -lfreetype
GTK_CFLAGS=`pkg-config --cflags gtk+-3.0`
GLIB_LIB=`pkg-config --libs glib-2.0`
GLIB_CFLAGS=`pkg-config --cflags glib-2.0`
MODULE_EXPORT_LIB=`pkg-config --libs gmodule-export-2.0`
MODULE_EXPORT_CFLAGS=`pkg-config --cflags gmodule-export-2.0`
LIBGLADE_LIB=`pkg-config --libs libglade-2.0`
LIBGLADE_CFLAGS=`pkg-config --cflags libglade-2.0`
LIBMATIO_LIB=`pkg-config --libs matio`
LIBMATIO_CFLAGS=`pkg-config --cflags matio`
FFTW3_CFLAGS=-lfftw3
###################################################################################
#################################### Principal ####################################
$(DIR)/HypeRvieW: start $(DIR)/dlib/libglobal_data.so $(DIR)/dlib/libmatlab.so $(DIR)/dlib/libhrw.so $(DIR)/dlib/libimg_format.so $(DIR)/dlib/librawm.so tiff/tiff.o $(DIR)/plugins/compilados/librexistrado $(DIR)/plugins/compilados/libelm $(DIR)/plugins/compilados/libpca_emp $(DIR)/plugins/compilados/libpca $(DIR)/plugins/compilados/librqs $(DIR)/plugins/compilados/libsvmPredict $(DIR)/plugins/compilados/libwatershed $(DIR)/plugins/compilados/libmajorityv_watershed $(DIR)/plugins/compilados/libmajorityv_rqs $(DIR)/plugins/compilados/libsmoothing $(DIR)/plugins/compilados/libdenoising mainCopy main/ayuda.o main/classification/classification.o main/classification/gtk-diagram.o main/classification/gtk-plugin.o main/classification/gtk-pin.o main/classification/gtk-connection.o main/classification/gtk-context-menu.o main/classification/gtk-notification.o main/classification/utils/colors.o main/classification/utils/dialogUtils.o main/classification/utils/progressbar.o main/classification/utils/utilFunctions.o main/classification/helpers/eventHelper.o main/classification/helpers/renderHelper.o main/classification/fileSystem/fileSystem.o main/classification/fileSystem/openHelper.o main/classification/fileSystem/saveHelper.o main/classification/execution/execute.o main/classification/execution/executeHelper.o main/common_functions.o main/ground_truth.o main/histogram.o main/image.o main/interface_plugins.o main/main.o main/md5.o main/manage_files.o main/manage_plugin.o main/color.o main/editor_ground_truth.o main/editor_segmented_image.o main/menu.o main/signals.o main/window.o main/biophysical.o segalgths/FH.o segalgths/ETPS.o end
$(CPLUS) -Wl,-rpath=dlib -o $(DIR)/HypeRvieW main/ayuda.o main/classification/classification.o main/classification/gtk-diagram.o main/classification/gtk-plugin.o main/classification/gtk-pin.o main/classification/gtk-connection.o main/classification/gtk-context-menu.o main/classification/gtk-notification.o main/classification/utils/colors.o main/classification/utils/dialogUtils.o main/classification/utils/progressbar.o main/classification/utils/utilFunctions.o main/classification/helpers/eventHelper.o main/classification/helpers/renderHelper.o main/classification/fileSystem/fileSystem.o main/classification/fileSystem/openHelper.o main/classification/fileSystem/saveHelper.o main/classification/execution/execute.o main/classification/execution/executeHelper.o main/common_functions.o main/ground_truth.o main/histogram.o main/image.o main/interface_plugins.o main/main.o main/md5.o tiff/tiff.o main/manage_files.o main/manage_plugin.o main/color.o main/editor_ground_truth.o segalgths/FH.o segalgths/ETPS.o main/editor_segmented_image.o main/menu.o main/signals.o main/window.o main/biophysical.o -Lmain/dlib $(GTK_LIB) $(MODULE_EXPORT_LIB) $(LIBGLADE_LIB) $(GLIB_LIB) $(LIBMATIO_LIB) $(FFTW3_CFLAGS) -lm -lz -ldl -lglobal_data -lrawm -lmatlab -lhrw -limg_format -lglib-2.0 -lcrypto -ltiff -g
#############################################################################################
#################################### Acciones especiales ####################################
.PHONY: clean
clean:
################### clean ###################
rm -rf HypeRvieW
rm main/headers/tipo_datos.h
find -name "*.o" -exec rm {} \;
find -name "*.d" -exec rm {} \;
find -name "*.so" -exec rm {} \;
find -name "*.so.*" -exec rm {} \;
mainCopy:
################### mainCopy ###################
cp hrw/hrw.h main/include
cp matlab/matlab.h main/include
cp rawm/rawm.h main/include
cp tiff/tiff.h main/include
cp img_format/img_format.h main/include
cp global_data/global_data.h main/include
mkdir -p main/dlib
cp $(DIR)/dlib/*.* main/dlib
cp database.json $(DIR)
start:
################### Start ###################
if [ ! -d "./$(DIR)" ]; then mkdir -p $(DIR); fi
mkdir -p $(DIR)/dlib
mkdir -p $(DIR)/image
cp main/image/*.* $(DIR)/image
mkdir -p $(DIR)/image/manual
cp main/image/manual/*.* $(DIR)/image/manual
mkdir -p $(DIR)/image/icons
cp main/image/icons/*.* $(DIR)/image/icons
mkdir -p $(DIR)/plugins/
mkdir -p $(DIR)/plugins/compilados
cp -a glade/. $(DIR)/plugins
mkdir -p $(DIR)/plugins/input
mkdir -p $(DIR)/plugins/output
printf '# Ignore everything in this directory\n*\n# Except this file\n!.gitignore\n' > $(DIR)/plugins/output/.gitignore
end:
################### End ###################
cp -a $(DIR)/plugins/compilados/. $(DIR)/plugins/es
cp -a $(DIR)/plugins/compilados/. $(DIR)/plugins/en
#rm -rf $(DIR)/plugins/compilados/
#########################################################################################################
#################################### Ficheros de main/classification ####################################
#principal
main/classification/classification.o: main/classification/classification.c
cp global_data/global_data.h main/include
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/classification.o.d -o main/classification/classification.o main/classification/classification.c
#gtk
main/classification/gtk-diagram.o: main/classification/gtk-diagram.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/gtk-diagram.o.d -o main/classification/gtk-diagram.o main/classification/gtk-diagram.c
main/classification/gtk-plugin.o: main/classification/gtk-plugin.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/gtk-plugin.o.d -o main/classification/gtk-plugin.o main/classification/gtk-plugin.c
main/classification/gtk-pin.o: main/classification/gtk-pin.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/gtk-pin.o.d -o main/classification/gtk-pin.o main/classification/gtk-pin.c
main/classification/gtk-connection.o: main/classification/gtk-connection.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/gtk-connection.o.d -o main/classification/gtk-connection.o main/classification/gtk-connection.c
main/classification/gtk-context-menu.o: main/classification/gtk-context-menu.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/gtk-context-menu.o.d -o main/classification/gtk-context-menu.o main/classification/gtk-context-menu.c
main/classification/gtk-notification.o: main/classification/gtk-notification.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/gtk-notification.o.d -o main/classification/gtk-notification.o main/classification/gtk-notification.c
#utils
main/classification/utils/colors.o:
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/utils/colors.o.d -o main/classification/utils/colors.o main/classification/utils/colors.c
main/classification/utils/dialogUtils.o: main/classification/utils/dialogUtils.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/utils/dialogUtils.o.d -o main/classification/utils/dialogUtils.o main/classification/utils/dialogUtils.c
main/classification/utils/progressbar.o: main/classification/utils/progressbar.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/utils/progressbar.o.d -o main/classification/utils/progressbar.o main/classification/utils/progressbar.c
main/classification/utils/utilFunctions.o: main/classification/utils/utilFunctions.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/utils/utilFunctions.o.d -o main/classification/utils/utilFunctions.o main/classification/utils/utilFunctions.c
#helpers
main/classification/helpers/eventHelper.o: main/classification/helpers/eventHelper.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/helpers/eventHelper.o.d -o main/classification/helpers/eventHelper.o main/classification/helpers/eventHelper.c
main/classification/fileSystem/openHelper.o: main/classification/fileSystem/openHelper.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/fileSystem/openHelper.o.d -o main/classification/fileSystem/openHelper.o main/classification/fileSystem/openHelper.c
main/classification/fileSystem/saveHelper.o: main/classification/fileSystem/saveHelper.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/fileSystem/saveHelper.o.d -o main/classification/fileSystem/saveHelper.o main/classification/fileSystem/saveHelper.c
#execution
main/classification/execution/execute.o: main/classification/execution/execute.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/execution/execute.o.d -o main/classification/execution/execute.o main/classification/execution/execute.c
main/classification/execution/executeHelper.o: main/classification/execution/executeHelper.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/classification/execution/executeHelper.o.d -o main/classification/execution/executeHelper.o main/classification/execution/executeHelper.c
##########################################################################################
#################################### Ficheros de main ####################################
main/common_functions.o: main/common_functions.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/common_functions.o.d -o main/common_functions.o main/common_functions.c
main/ground_truth.o: main/ground_truth.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/ground_truth.o.d -o main/ground_truth.o main/ground_truth.c
main/histogram.o: main/histogram.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/histogram.o.d -o main/histogram.o main/histogram.c
main/image.o: main/image.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/image.o.d -o main/image.o main/image.c
main/interface_plugins.o: main/interface_plugins.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/interface_plugins.o.d -o main/interface_plugins.o main/interface_plugins.c
main/main.o: main/main.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/main.o.d -o main/main.o main/main.c
main/manage_files.o: main/manage_files.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/manage_files.o.d -o main/manage_files.o main/manage_files.c
main/md5.o: main/md5.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/md5.o.d -o main/md5.o main/md5.c
main/manage_plugin.o: main/manage_plugin.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/manage_plugin.o.d -o main/manage_plugin.o main/manage_plugin.c
main/color.o: main/color.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/color.o.d -o main/color.o main/color.c
main/editor_ground_truth.o: main/editor_ground_truth.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/editor_ground_truth.o.d -o main/editor_ground_truth.o main/editor_ground_truth.c
main/editor_segmented_image.o: main/editor_segmented_image.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/editor_segmented_image.o.d -o main/editor_segmented_image.o main/editor_segmented_image.c
main/menu.o: main/menu.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/menu.o.d -o main/menu.o main/menu.c
main/signals.o: main/signals.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/signals.o.d -o main/signals.o main/signals.c
main/window.o: main/window.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/window.o.d -o main/window.o main/window.c
main/biophysical.o: main/biophysical_indexes.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/biophysical.o.d -o main/biophysical.o main/biophysical_indexes.c
main/ayuda.o: main/ayuda.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF main/ayuda.o.d -o main/ayuda.o main/ayuda.c
##########################################################################################
#################################### Ficheros de segalgths ###############################
segalgths/FH.o: segalgths/FH.cpp
$(CPLUS) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF segalgths/FH.o.d -o segalgths/FH.o segalgths/FH.cpp
segalgths/ETPS.o: segalgths/ETPS.cpp
$(CPLUS) -Wl,-rpath=dlib -c -g -I./main/include $(GTK_CFLAGS) $(MODULE_EXPORT_CFLAGS) $(LIBGLADE_CFLAGS) $(GLIB_CFLAGS) -MMD -MP -MF segalgths/ETPS.o.d -o segalgths/ETPS.o segalgths/ETPS.cpp
###################################################################################
#################################### Librerias ####################################
#################################### Compilamos la librería global_data ####################################
$(DIR)/dlib/libglobal_data.so: global_data/global_data.o rexistrado/imaxes.o rexistrado/algoritmo.o
$(CC) -o $(DIR)/dlib/libglobal_data.so global_data/global_data.o rexistrado/imaxes.o rexistrado/algoritmo.o $(GTK_LIB) -shared -fPIC -lfftw3
global_data/global_data.o: global_data/global_data.c
$(CC) -c -g $(GTK_CFLAGS) -fPIC -MMD -MP -MF global_data/global_data.o.d -o global_data/global_data.o global_data/global_data.c -lfftw3
#################################### Compiles TIFF library ####################################
tiff/tiff.o: tiff/tiff.c
$(CC) -Wl,-rpath=dlib -c -g -I./main/include $(GLIB_CFLAGS) -ltiff -o tiff/tiff.o tiff/tiff.c
## ERROR #################################### Compilamos librería segalgths ####################################
#$(DIR)/dlib/libsegalgths.so: segalgths/FH.o segalgths/ETPS.o
# mkdir -p segalgths/dlib
# $(CPLUS) -o $(DIR)/dlib/libsegalgths.so segalgths/FH.o segalgths/ETPS.o -Wall -fno-strict-aliasing -DUNIX -I. -L./segalgths/dlib/ -shared -fPIC
#segalgths/FH.o: segalgths/FH.cpp
# $(CPLUS) -c -fPIC -MMD -MP -MF segalgths/FH.o.d -o segalgths/FH.o segalgths/FH.cpp
#segalgths/ETPS.o: segalgths/ETPS.cpp
# $(CPLUS) -c -fPIC -MMD -MP -MF segalgths/ETPS.o.d -o segalgths/ETPS.o segalgths/ETPS.cpp
#################################################################################
#################################### Plugins ####################################
#################################### Compilamos plugin ELM ####################################
$(DIR)/plugins/compilados/libelm: elm/elm_d.o elm/libreriaFunciones.o
$(CC) -o $(DIR)/plugins/compilados/libelm elm/elm_d.o elm/libreriaFunciones.o -Ldlib $(GTK_LIB) -L./elm/dlib/ -lglobal_data -fopenmp -L./elm/dlib/ -llapacke -llapack -lblas -lm -lgfortran -shared -fPIC
elm/elm_d.o: elm/elm_d.c
mkdir -p elm/dlib; cp $(DIR)/dlib/libglobal_data.so elm/dlib
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF elm/elm_d.o.d -o elm/elm_d.o elm/elm_d.c
elm/libreriaFunciones.o: elm/libreriaFunciones.c
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF elm/libreriaFunciones.o.d -o elm/libreriaFunciones.o elm/libreriaFunciones.c
#################################### compilamos plugin PCA-EMP ####################################
$(DIR)/plugins/compilados/libpca_emp: pca_emp/pca_emp.o
$(CC) -o $(DIR)/plugins/compilados/libpca_emp pca_emp/pca_emp.o -Ldlib $(GTK_LIB) -L./pca_emp/dlib/ -lglobal_data -fopenmp -L./pca_emp/dlib/ -llapacke -llapack -lblas -lm -lgfortran -shared -fPIC
pca_emp/pca_emp.o: pca_emp/pca_emp.c
mkdir -p pca_emp/dlib; cp $(DIR)/dlib/libglobal_data.so pca_emp/dlib
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF pca_emp/pca_emp.o.d -o pca_emp/pca_emp.o pca_emp/pca_emp.c
#################################### compilamos plugin PCA ####################################
$(DIR)/plugins/compilados/libpca: pca/pca1.o
$(CC) -o $(DIR)/plugins/compilados/libpca pca/pca1.o -Ldlib $(GTK_LIB) -L./pca/dlib/ -lglobal_data -fopenmp -L./pca/dlib/ -llapacke -llapack -lblas -lm -lgfortran -shared -fPIC
pca/pca1.o: pca/pca.c
mkdir -p pca/dlib; cp $(DIR)/dlib/libglobal_data.so pca/dlib
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF pca/pca1.o.d -o pca/pca1.o pca/pca.c
#################################### Compilamos plugin Rexistrado ####################################
$(DIR)/plugins/compilados/librexistrado: rexistrado/rexistrado_d.o rexistrado/imaxes.o rexistrado/algoritmo.o rexistrado/hiperspectral.o rexistrado/pca.o rexistrado/pca_HYFM.o rexistrado/reg_HYFM.o
cp rexistrado/tipo_datos.h main/headers/
$(CC) -Wl,-rpath=dlib -o $(DIR)/plugins/compilados/librexistrado rexistrado/imaxes.o rexistrado/algoritmo.o rexistrado/hiperspectral.o rexistrado/pca.o rexistrado/pca_HYFM.o rexistrado/reg_HYFM.o rexistrado/rexistrado_d.o -Ldlib $(GTK_LIB) $(FFTW3_CFLAGS) -L./rexistrado/dlib/ -lglobal_data -fopenmp -L./rexistrado/dlib/ -llapacke -llapack -lblas -O3 -lm -Ldlib -lfftw3 -lgfortran -shared -fPIC
rexistrado/imaxes.o: rexistrado/imaxes.c
$(CC) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rexistrado/imaxes.o.d -o rexistrado/imaxes.o rexistrado/imaxes.c
rexistrado/algoritmo.o: rexistrado/algoritmo.c
$(CC) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rexistrado/algoritmo.o.d -o rexistrado/algoritmo.o rexistrado/algoritmo.c
rexistrado/hiperspectral.o: rexistrado/hiperspectral.c
$(CC) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rexistrado/hiperspectral.o.d -o rexistrado/hiperspectral.o rexistrado/hiperspectral.c
rexistrado/pca.o: rexistrado/pca.c
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -lopenblas -O3 -fopenmp -Wl,-rpath=dlib -fPIC -MMD -MP -MF rexistrado/pca.o.d -o rexistrado/pca.o rexistrado/pca.c
rexistrado/pca_HYFM.o: rexistrado/pca_HYFM.c
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -lm -llapacke -lblas -lgfortran -O3 -fopenmp -Wl,-rpath=dlib -fPIC -MMD -MP -MF rexistrado/pca_HYFM.o.d -o rexistrado/pca_HYFM.o rexistrado/pca_HYFM.c
rexistrado/reg_HYFM.o: rexistrado/reg_HYFM.c
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -lm -O3 -Wl,-rpath=dlib -fPIC -MMD -MP -MF rexistrado/reg_HYFM.o.d -o rexistrado/reg_HYFM.o rexistrado/reg_HYFM.c
rexistrado/rexistrado_d.o: rexistrado/rexistrado_d.c
mkdir -p rexistrado/dlib; cp $(DIR)/dlib/libglobal_data.so rexistrado/dlib
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF rexistrado/rexistrado_d.o.d -o rexistrado/rexistrado_d.o rexistrado/rexistrado_d.c
#################################### Compilamos plugin rqs ####################################
$(DIR)/plugins/compilados/librqs: rqs/Image.o rqs/RCMG-CPU.o rqs/quickshift_cpu.o rqs/rqs.o
$(CPLUS) -o $(DIR)/plugins/compilados/librqs rqs/Image.o rqs/RCMG-CPU.o rqs/quickshift_cpu.o rqs/rqs.o -L./dlib $(GTK_LIB) -fopenmp -Wall -fno-strict-aliasing -DUNIX -I. -L./rqs/dlib/ -lglobal_data -shared -fPIC
rqs/Image.o: rqs/Image.cpp
mkdir -p rqs/dlib; cp $(DIR)/dlib/libglobal_data.so rqs/dlib; cp $(DIR)/dlib/libimg_format.so rqs/dlib
$(CPLUS) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rqs/Image.o.d -o rqs/Image.o rqs/Image.cpp
rqs/RCMG-CPU.o: rqs/RCMG-CPU.cpp
$(CPLUS) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rqs/RCMG-CPU.o.d -o rqs/RCMG-CPU.o rqs/RCMG-CPU.cpp
rqs/quickshift_cpu.o: rqs/quickshift_cpu.cpp
$(CPLUS) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rqs/quickshift_cpu.o.d -o rqs/quickshift_cpu.o rqs/quickshift_cpu.cpp
rqs/rqs.o: rqs/rqs.cpp
$(CPLUS) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF rqs/rqs.o.d -o rqs/rqs.o rqs/rqs.cpp
#################################### Compilamos plugin svm ####################################
$(DIR)/plugins/compilados/libsvmPredict: svm/svm-predict.o svm/svm-train.o svm/svm.o svm/svmPrediction.o
$(CPLUS) -o $(DIR)/plugins/compilados/libsvmPredict svm/svm-predict.o svm/svm-train.o svm/svm.o svm/svmPrediction.o -L./svm/dlib $(GTK_LIB) -lglobal_data -shared -fPIC
svm/svm-predict.o: svm/svm-predict.c
mkdir -p svm/dlib; cp $(DIR)/dlib/libglobal_data.so svm/dlib
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF svm/svm-predict.o.d -o svm/svm-predict.o svm/svm-predict.c
svm/svm-train.o: svm/svm-train.c
$(CC) -c -g -I. -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4/include-fixed -I/usr/include $(GTK_CFLAGS) -fPIC -MMD -MP -MF svm/svm-train.o.d -o svm/svm-train.o svm/svm-train.c
svm/svm.o: svm/svm.cpp
$(CPLUS) -c -g -I. $(GTK_CFLAGS) -fPIC -MMD -MP -MF svm/svm.o.d -o svm/svm.o svm/svm.cpp
svm/svmPrediction.o: svm/svmPrediction.cpp
$(CPLUS) -c -g -I. $(GTK_CFLAGS) -fPIC -MMD -MP -MF svm/svmPrediction.o.d -o svm/svmPrediction.o svm/svmPrediction.cpp
#################################### Compilamos plugin watershed ####################################
$(DIR)/plugins/compilados/libwatershed: watershed/CA-WSHED.o watershed/RCMG-CPU.o watershed/watershed.o
$(CPLUS) -o $(DIR)/plugins/compilados/libwatershed watershed/CA-WSHED.o watershed/RCMG-CPU.o watershed/watershed.o -Lwatershed/dlib $(GTK_LIB) -fopenmp -lglobal_data -shared -fPIC
watershed/CA-WSHED.o: watershed/CA-WSHED.cpp
mkdir -p watershed/dlib; cp $(DIR)/dlib/libglobal_data.so watershed/dlib; cp $(DIR)/dlib/libimg_format.so watershed/dlib
$(CPLUS) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF watershed/CA-WSHED.o.d -o watershed/CA-WSHED.o watershed/CA-WSHED.cpp
watershed/RCMG-CPU.o: watershed/RCMG-CPU.cpp
$(CPLUS) -c -g -I./ $(GTK_CFLAGS) -fPIC -MMD -MP -MF watershed/RCMG-CPU.o.d -o watershed/RCMG-CPU.o watershed/RCMG-CPU.cpp
watershed/watershed.o: watershed/watershed.c
$(CC) -c -g $(GTK_CFLAGS) -fPIC -MMD -MP -MF watershed/watershed.o.d -o watershed/watershed.o watershed/watershed.c
#################################### Compilamos el plugin majority voting watershed ####################################
$(DIR)/plugins/compilados/libmajorityv_watershed: mv_w/majorityVoteWatershed.o
$(CC) -o $(DIR)/plugins/compilados/libmajorityv_watershed mv_w/majorityVoteWatershed.o -L./mv_w/dlib $(GK_LIB) -fopenmp -lglobal_data -shared -fPIC
mv_w/majorityVoteWatershed.o: mv_w/majorityVoteWatershed.c
mkdir -p mv_w/dlib; cp $(DIR)/dlib/libglobal_data.so mv_w/dlib; cp $(DIR)/dlib/libimg_format.so mv_w/dlib
$(CC) -c -g $(GTK_CFLAGS) -fPIC -MMD -MP -MF mv_w/majorityVoteWatershed.o.d -o mv_w/majorityVoteWatershed.o mv_w/majorityVoteWatershed.c
#################################### Compilamos el plugin Smoothing ####################################
$(DIR)/plugins/compilados/libsmoothing: smoothing/smoothing.o
$(CC) -o $(DIR)/plugins/compilados/libsmoothing smoothing/smoothing.o -L./smoothing/dlib $(GK_LIB) -fopenmp -lglobal_data -shared -fPIC
smoothing/smoothing.o: smoothing/smoothing.c
mkdir -p smoothing/dlib; cp $(DIR)/dlib/libglobal_data.so smoothing/dlib
$(CC) -c -g $(GTK_CFLAGS) -fPIC -MMD -MP -MF smoothing/smoothing.o.d -o smoothing/smoothing.o smoothing/smoothing.c
我添加了几个依赖项,以便强制make
仅在文件发生更改时才进行编译。但是每次运行时make
都会调用编译主文件。有没有办法可以修改它以不每次都编译此文件?其他文件正常工作,并且仅在修改后才进行编译。即使没有任何变化,运行也将始终触发此主文件的重新编译。没有任何文件发生变化,那么为什么会这样做呢?HypeRvieW/HypeRvieW
make
make
HypeRvieW/HypeRvieW
答案1
是因为它依赖于start
,并且start
不存在,而不是假的?