質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

676閲覧

C++コンパイルエラーについて

MF_19

総合スコア27

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2018/07/02 03:32

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

efcode

2018/07/02 04:31

エラーの内容そのままな気がしますが
guest

回答1

0

自己解決

Makefile内の変数、LDFLAGSに不足している.soファイルのパスを指定して解決しました。

投稿2018/07/02 05:44

MF_19

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問