前提・実現したいこと
C++のコンパイルを行いたいです。
Makefileのあるカレントディレクトリでmakeを
実行すると下記の「発生している問題メッセージ」が出力されます。
とのように対処すれば宜しいでしょうか?
PATHの問題でしょうか。
因みに今までの流れでは
make実行でディレクトリがないというエラーメッセージが出ていましたので、
下記サイトを参照しました
URL
main.cpp:3:30: fatal error: opencv2/opencv.hpp: そのようなファイルやディレクトリはありません
サイトのコードを実行後、再度make実行で下記メッセージ
発生している問題メッセージ
g++ -std=gnu++14 -Ofast -fPIC -fopenmp -o main obj/main.o -lm -lpthread -lgomp ../../libsensor.so `pkg-config --libs opencv` ../../libsensor.so: undefined reference to `cudnnSetTensor4dDescriptor' ../../libsensor.so: undefined reference to `cudnnCreateFilterDescriptor' ../../libsensor.so: undefined reference to `cudaFree' ../../libsensor.so: undefined reference to `cudnnSetConvolution2dDescriptor' ../../libsensor.so: undefined reference to `cudaPeekAtLastError' ../../libsensor.so: undefined reference to `cudaSetupArgument' ../../libsensor.so: undefined reference to `cudaGetDevice' ../../libsensor.so: undefined reference to `__cudaRegisterFunction' ../../libsensor.so: undefined reference to `cudnnCreateTensorDescriptor' ../../libsensor.so: undefined reference to `cudaThreadSynchronize' ../../libsensor.so: undefined reference to `cublasCreate_v2' ../../libsensor.so: undefined reference to `cudnnSetFilter4dDescriptor' ../../libsensor.so: undefined reference to `cudaConfigureCall' ../../libsensor.so: undefined reference to `cudnnGetConvolutionBackwardDataAlgorithm' ../../libsensor.so: undefined reference to `cudnnBatchNormalizationBackward' ../../libsensor.so: undefined reference to `cudnnCreate' ../../libsensor.so: undefined reference to `cudnnCreateConvolutionDescriptor' ../../libsensor.so: undefined reference to `cudnnGetConvolutionBackwardFilterAlgorithm' ../../libsensor.so: undefined reference to `curandSetPseudoRandomGeneratorSeed' ../../libsensor.so: undefined reference to `cudnnGetConvolutionBackwardDataWorkspaceSize' ../../libsensor.so: undefined reference to `cudnnGetConvolutionForwardAlgorithm' ../../libsensor.so: undefined reference to `cudnnGetConvolutionForwardWorkspaceSize' ../../libsensor.so: undefined reference to `cublasSgemm_v2' ../../libsensor.so: undefined reference to `cudnnGetConvolutionBackwardFilterWorkspaceSize' ../../libsensor.so: undefined reference to `cudnnBatchNormalizationForwardTraining' ../../libsensor.so: undefined reference to `cudaSetDevice' ../../libsensor.so: undefined reference to `cudnnConvolutionForward' ../../libsensor.so: undefined reference to `cudaLaunch' ../../libsensor.so: undefined reference to `__cudaUnregisterFatBinary' ../../libsensor.so: undefined reference to `cudnnConvolutionBackwardFilter' ../../libsensor.so: undefined reference to `__cudaRegisterFatBinary' ../../libsensor.so: undefined reference to `curandCreateGenerator' ../../libsensor.so: undefined reference to `curandGenerateUniform' ../../libsensor.so: undefined reference to `cudnnConvolutionBackwardData' ../../libsensor.so: undefined reference to `cudaMalloc' ../../libsensor.so: undefined reference to `cudaMemcpy' ../../libsensor.so: undefined reference to `cudaGetLastError' ../../libsensor.so: undefined reference to `cudaGetErrorString' collect2: error: ld returned 1 exit status Makefile:23: recipe for target 'main' failed make: *** [main] Error 1
該当のソースコード
コンパイル対象のmain.cpp
c++
1#include <iostream> 2#include <string> 3#include <opencv2/opencv.hpp> 4#include <opencv2/highgui/highgui.hpp> 5#include <opencv2/imgproc/imgproc.hpp> 6#include "inference.hpp"
Makefike
COMPILER = g++ CFLAGS :=-std=gnu++14 -Ofast -fPIC -fopenmp LDFLAGS := -lm -lpthread -lgomp ../../libsensor.so `pkg-config --libs opencv` LIBS = INCLUDE = `pkg-config --cflags opencv` -I./ -I/usr/include TARGET = ./main SRCDIR = ifeq "$(strip $(SRCDIR))" "" SRCDIR = . endif SOURCES = $(wildcard $(SRCDIR)/*.cpp) OBJDIR = ./obj ifeq "$(strip $(OBJDIR))" "" OBJDIR = . endif OBJECTS = $(addprefix $(OBJDIR)/, $(notdir $(SOURCES:.cpp=.o))) DEPENDS = $(OBJECTS:.o=.d) all: $(TARGET) $(TARGET): $(OBJECTS) $(COMPILER) $(CFLAGS) $(LIBS) -o $@ $^ $(LDFLAGS) $(OBJDIR)/%.o: $(SRCDIR)/%.cpp -mkdir -p $(OBJDIR) $(COMPILER) $(CFLAGS) $(INCLUDE) $(LIBS) -o $@ -c $< # all: clean $(TARGET) clean: -rm -f $(OBJECTS) $(DEPENDS) $(TARGET) -include $(DEPENDS)
補足情報(FW/ツールのバージョンなど)
Ubuntu 16.04.4 LTS (Xenial Xerus)
Cuda V9.0.176
cudnn 6.0.21
回答1件
あなたの回答
tips
プレビュー