前提・実現したいこと
環境はgoogle colab、言語はC++、ライブラリはopencvを使って写真を表示するプログラムを作ったのですが、実行する部分でエラーが返されました。素人質問で申し訳ございませんがご教授頂けると幸いです。プログラムは「詳解OpenCV3」の本を参考にしています。
発生している問題・エラーメッセージ
/tmp/ccyZIjpi.o: In function main': 2-1.cpp:(.text+0x11e): undefined reference to
cv::imread(cv::String const&, int)'
2-1.cpp:(.text+0x171): undefined reference to cv::namedWindow(cv::String const&, int)' 2-1.cpp:(.text+0x1c5): undefined reference to
cv::imshow(cv::String const&, cv::_InputArray const&)'
2-1.cpp:(.text+0x1ed): undefined reference to cv::waitKey(int)' 2-1.cpp:(.text+0x212): undefined reference to
cv::destroyWindow(cv::String const&)'
/tmp/ccyZIjpi.o: In function cv::String::String(char const*)': 2-1.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x4d): undefined reference to
cv::String::allocate(unsigned long)'
/tmp/ccyZIjpi.o: In function cv::String::~String()': 2-1.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14): undefined reference to
cv::String::deallocate()'
/tmp/ccyZIjpi.o: In function cv::String::operator=(cv::String const&)': 2-1.cpp:(.text._ZN2cv6StringaSERKS0_[_ZN2cv6StringaSERKS0_]+0x28): undefined reference to
cv::String::deallocate()'
/tmp/ccyZIjpi.o: In function cv::Mat::~Mat()': 2-1.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39): undefined reference to
cv::fastFree(void*)'
/tmp/ccyZIjpi.o: In function cv::Mat::release()': 2-1.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4b): undefined reference to
cv::Mat::deallocate()'
collect2: error: ld returned 1 exit status
/bin/bash: line 2: ./2-1: No such file or directory
CalledProcessError Traceback (most recent call last)
<ipython-input-8-1a8e66169d34> in <module>()
----> 1 get_ipython().run_cell_magic('shell', '', '\ng++ 2-1.cpp -o 2-1\n./2-1 0.jpg')
2 frames
/usr/local/lib/python3.7/dist-packages/google/colab/_system_commands.py in check_returncode(self)
137 if self.returncode:
138 raise subprocess.CalledProcessError(
--> 139 returncode=self.returncode, cmd=self.args, output=self.output)
140
141 def repr_pretty(self, p, cycle): # pylint:disable=unused-argument
CalledProcessError: Command '
g++ 2-1.cpp -o 2-1
./2-1 0.jpg' returned non-zero exit status 127.
該当のソースコード
%%writefile 2-1.cpp
#include <opencv2/opencv.hpp>
void help(char** argv ) {
std::cout << "\n"
<< "A simple OpenCV program that loads and displays an image from disk\n"
<< argv[0] <<" <path/filename>\n"
<< "For example:\n"
<< argv[0] << " ../fruits.jpg\n"
<< std::endl;
}
int main( int argc, char** argv ) {
if (argc != 2) { help(argv); return 0; }
cv::Mat img = cv::imread( argv[1], -1 );
if( img.empty() ) return -1;
cv::namedWindow( "Example 2-1", cv::WINDOW_AUTOSIZE );
cv::imshow( "Example 2-1", img );
cv::waitKey( 0 );
cv::destroyWindow( "Example 2-1" );
return 0;
}
from google.colab import files
uploaded_file = files.upload()
uploaded_file_name = next(iter(uploaded_file))
print(uploaded_file_name)
!ls -l
%%shell
g++ 2-1.cpp -o 2-1
./2-1 0.jpg
試したこと
特にありません。
補足情報(FW/ツールのバージョンなど)
環境:Google Colab
言語:Python
ライブラリ:C++