[llvm-dev] Opencv tutorial code compilation with clang
Corda, S. via llvm-dev
llvm-dev at lists.llvm.org
Wed Oct 16 10:29:16 PDT 2019
Hi all,
I'm trying to compile the following code using clang++:
https://github.com/opencv/opencv/blob/master/samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp
With g++ I don't have problem I just did:
g++ Morphology_1.cpp -I /workspace/opencv/modules/core/include/ -I /workspace/opencv/modules/imgproc/include/ -I /workspace/opencv/modules/core/include/ -I /workspace/opencv/include/opencv2/ -I /workspace/opencv/build/ -I /workspace/opencv/modules/highgui/include/ -I /workspace/opencv/modules/imgcodecs/include/ -I /workspace/opencv/modules/videoio/include/ -L /workspace/opencv/build/lib/ -std=c++11 -o Morphology -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs
cp ../../../data/LinuxLogo.jpg LinuxLogo.jpg
sudo ldconfig -v
Using the same compilation flags I got this error (clang++):
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/cstddef:51:11: error: no member named 'max_align_t' in the global namespace
I added -stdlib=libc++, but I got:
/tmp/Morphology_1-1e9ee6.o: In function `main':
Morphology_1.cpp:(.text+0xe7): undefined reference to `cv::CommandLineParser::CommandLineParser(int, char const* const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
Morphology_1.cpp:(.text+0x1cf): undefined reference to `cv::samples::findFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool)'
Morphology_1.cpp:(.text+0x1ec): undefined reference to `cv::imread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)'
Morphology_1.cpp:(.text+0x4d4): undefined reference to `cv::namedWindow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)'
Morphology_1.cpp:(.text+0x58f): undefined reference to `cv::namedWindow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)'
Morphology_1.cpp:(.text+0x64d): undefined reference to `cv::moveWindow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)'
Morphology_1.cpp:(.text+0x7bc): undefined reference to `cv::createTrackbar(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int*, int, void (*)(int, void*), void*)'
Morphology_1.cpp:(.text+0x93d): undefined reference to `cv::createTrackbar(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int*, int, void (*)(int, void*), void*)'
Morphology_1.cpp:(.text+0xab8): undefined reference to `cv::createTrackbar(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int*, int, void (*)(int, void*), void*)'
Morphology_1.cpp:(.text+0xbfd): undefined reference to `cv::createTrackbar(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int*, int, void (*)(int, void*), void*)'
/tmp/Morphology_1-1e9ee6.o: In function `Erosion(int, void*)':
Morphology_1.cpp:(.text+0x1069): undefined reference to `cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)'
/tmp/Morphology_1-1e9ee6.o: In function `Dilation(int, void*)':
Morphology_1.cpp:(.text+0x13c9): undefined reference to `cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&)'
/tmp/Morphology_1-1e9ee6.o: In function `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > cv::CommandLineParser::get<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) const':
Morphology_1.cpp:(.text._ZNK2cv17CommandLineParser3getINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEET_RKS8_b[_ZNK2cv17CommandLineParser3getINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEET_RKS8_b]+0xf7): undefined reference to `cv::CommandLineParser::getByName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, cv::Param, void*) const'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Do you know how to fix this issue?
Thanks,
Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191016/e8b8b1cf/attachment.html>
More information about the llvm-dev
mailing list