joachimBurket / esp32-opencv

Shrinked OpenCV for ESP32

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Final link can not find sysconf

rqbh opened this issue · comments

commented

Good work, but at final link stage, here is an error, can not find sysconf,
platorm win10, idf 3.3/4.3, ttgo example

Thanks.
I haven't worked on it for a while now, and the ESP-IDF version I used was the v4.2-dev-674-g640c7c510-dirty.
Could you send a log of the error ? Have you used the pre-compiled OpenCV lib (in the esp32/lib/ folder), or have you compile your own?

@joachimBurket I'm using ESP-IDF which is the official version of v4.2. The precompiled OpenCV library included in the project was used. This is the log of the error.

[1/5] Performing build step for 'bootloader'
ninja: no work to do.
[2/3] Linking CXX executable ttgo_demo.elf
FAILED: ttgo_demo.elf
...
/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/lib/esp32-psram/no-rtti/libstdc++.a(thread.o): in function std::thread::hardware_concurrency()': /builds/idf/crosstool-NG/.build/HOST-x86_64-apple-darwin12/xtensa-esp32-elf/src/gcc/libstdc++-v3/src/c++11/thread.cc:177: undefined reference to sysconf'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
The terminal process "/bin/bash '-c', 'cmake --build .'" terminated with exit code: 1.

I have the same problem...trying to perform idf.py build on a windows 10 system...followed the instructions for installing the toolchain but the build fails with exactly the same error related to 'sysconf'.

I've tried a few things since my last post: 1.) tried building the ttgo_demo project on Ubuntu 20.04 - WORKED! Went back and looked at the README.rst notes and see that they're written as if being performed on a linux-type system. So, I'm now thinking that in order to get this to work on a Windows 10 system, it has to be built from bottom up, can't use the copy of opencv directory that's pre-built and that's why the original issue creator and myself are finding we can't get the ttgo_demo to build. So, I'm going to go back to the README.rst and see if I can make sense of the full-build details and go from there; otherwise at this point I would say it's a no-go on Windows 10 and there needs to be a caveat included to that effect - of course, the caveat should be included anyway because the project won't build with the pre-compiled opencv lib.

So, after much fiddling around getting the build to even start, I encountered the following error building on windows:
*********************** error log **************************
[852/1524] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/imgwarp.cpp.o
FAILED: modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/imgwarp.cpp.o
/usr/bin/c++ -DCVAPI_EXPORTS -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I3rdparty/ippicv/ippicv_lnx/icv/include -I3rdparty/ippicv/ippicv_lnx/iw/include -I. -I../modules/imgproc/include -Imodules/imgproc -I../modules/core/include -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -fPIC -std=c++11 -MD -MT modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/imgwarp.cpp.o -MF modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/imgwarp.cpp.o.d -o modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/imgwarp.cpp.o -c ../modules/imgproc/src/imgwarp.cpp
../modules/imgproc/src/imgwarp.cpp: In function ‘const void* cv::initInterTab2D(int, bool)’:
../modules/imgproc/src/imgwarp.cpp:255:9: error: ‘tablesAllocated’ was not declared in this scope
if(!tablesAllocated)
^~~~~~~~~~~~~~~
../modules/imgproc/src/imgwarp.cpp:255:9: note: suggested alternative: ‘MatAllocator’
if(!tablesAllocated)
^~~~~~~~~~~~~~~
MatAllocator
../modules/imgproc/src/imgwarp.cpp:256:9: error: ‘allocateTables’ was not declared in this scope
allocateTables();
^~~~~~~~~~~~~~
../modules/imgproc/src/imgwarp.cpp:263:31: error: cannot convert ‘float ()[2][2]’ to ‘float’ in assignment
tab = &BilinearTab_f[0], itab = &BilinearTab_i[0], ksize=2;
^
../modules/imgproc/src/imgwarp.cpp:263:57: error: cannot convert ‘short int ()[2][2]’ to ‘short int’ in assignment
tab = &BilinearTab_f[0], itab = &BilinearTab_i[0], ksize=2;
^
../modules/imgproc/src/imgwarp.cpp:265:30: error: cannot convert ‘float ()[4][4]’ to ‘float’ in assignment
tab = &BicubicTab_f[0], itab = &BicubicTab_i[0], ksize=4;
^
../modules/imgproc/src/imgwarp.cpp:265:55: error: cannot convert ‘short int ()[4][4]’ to ‘short int’ in assignment
tab = &BicubicTab_f[0], itab = &BicubicTab_i[0], ksize=4;
^
../modules/imgproc/src/imgwarp.cpp:267:31: error: cannot convert ‘float ()[8][8]’ to ‘float’ in assignment
tab = &Lanczos4Tab_f[0], itab = &Lanczos4Tab_i[0], ksize=8;
^
../modules/imgproc/src/imgwarp.cpp:267:57: error: cannot convert ‘short int ()[8][8]’ to ‘short int’ in assignment
tab = &Lanczos4Tab_f[0], itab = &Lanczos4Tab_i[0], ksize=8;
^
../modules/imgproc/src/imgwarp.cpp:280:73: error: incompatible types in assignment of ‘bool’ to ‘uchar [2] {aka unsigned char [2]}’
NNDeltaTab_i[iINTER_TAB_SIZE+j+0] = j < INTER_TAB_SIZE/2;
^
../modules/imgproc/src/imgwarp.cpp:281:73: error: incompatible types in assignment of ‘bool’ to ‘uchar [2] {aka unsigned char [2]}’
NNDeltaTab_i[i
INTER_TAB_SIZE+j+1] = i < INTER_TAB_SIZE/2;
^
../modules/imgproc/src/imgwarp.cpp: In member function ‘virtual void cv::RemapInvoker::operator()(const cv::Range&) const’:
../modules/imgproc/src/imgwarp.cpp:1172:54: error: invalid conversion from ‘uchar* {aka unsigned char*}’ to ‘short int’ [-fpermissive]
XY[x12] = sXY[x12] + NNDeltaTab_i[a+0];
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../modules/imgproc/src/imgwarp.cpp:1173:58: error: invalid conversion from ‘uchar* {aka unsigned char*}’ to ‘short int’ [-fpermissive]
XY[x12+1] = sXY[x12+1] + NNDeltaTab_i[a+1];
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
[861/1524] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/filter.dispatch.cpp.o
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
****************** end of error log ***********************
So, I'm dead in the water again as far as being able to use esp32-opencv in my windows environment...
How about some help and assistance? Is anyone even monitoring the issues in this repo anymore? :-)

Hi there,

This project was made during my studies, and I am unfortunately no longer working in this field. I would be happy that this project lives, but as I don't use it anymore, I won't spend much time on it. Feel free to fork it if you want to make it evolve! :)

That said, I can at least try to help you make it compile ;)

So, I'm now thinking that in order to get this to work on a Windows 10 system, it has to be built from bottom up

As you're saying, you'll probably need to build it to make it work on Windows. @rqbh @aseitasi15 were you also trying to build it on Windows?

To build the library, you need to make the operations done in the build script. Globally, it makes this:

  • Runs CMake command with the $CMAKE_ARGS arguments
    • The -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_CMAKE_PATH} must point to the toolchain file, which is available here
  • Copies alloc_fix.cpp file
  • Starts compilation with Make command
  • Copies the compiled files into your project

I encountered the following error building on windows

About the error you have, try to remove the whole build/ folder, and re-launching the cmake command checking that all the CMAKE_ARGS arguments are present. You can also take a look at the detailed procedure file, where I wrote the detailed modifications I've done while struggling to make the compilation work (the doc is a bit messy but you could find something about your error).

So, I'm dead in the water again as far as being able to use esp32-opencv in my windows environment...

As a workaround if you don't succeed to compile on Windows, you can try to use Windows WSL (if you can change a bit you're development environment). It works pretty well with vscode.

Could be that you're not launching the script from the good directory. If I recall correctly, I think you must launch it from the root of the repo, so:

$ ./esp32/scripts/build_opencv_for_esp32.sh/

joachimBurket thanks for the reply. This has been a frustrating effort, especially on my Windows 10 machine. I have make some progress, but had to do a number of things to get where I am, which I think is SUCCESS - but I'll wait until I actually use the library I've created in a test app. But, here's what I discovered and what I did to fix:
1.) Kept getting problems right off the start during make because Windows 10 tools couldn't build a "simple project" and after looking that up online, there didn't seem to be a "windows tool fix" so I installed the Mingw64 toolset and put that in my PATH environment variable; I also added cmake and added it's directory to the path;
2.) Then after installing those tools, it still wasn't using those tools to run the build_opencv_for_esp32 script, rather it kept using the microsoft windows toolkit. So, after reviewing the cmake options I came across the -G option which tells cmake what "generator" to use and I added that option to the build shell script (cmake -G"Mingw Makefiles" ... and that resulted in the process using my Mingw64 tools, and I got through the build without error.
3.) Earlier on I tried using idf.py build, instead of the shell script, but I kept getting problems in a module named imgwarp.cpp which contained some modifications you make to allocate tables in Heap at runtime. I don't know why but kept getting a strange compiler error about the variable "tablesAllocated" not being in scope in an if statement "if(!tablesAllocated) and couldn't make a lot of sense of that; but just in case the #ifdef ESP32 section of code wasn't getting called in, I added a "#define ESP32 1" ahead of the #ifdef ESP32 and that seems to have gotten around the problem. I also took the "#if CV_SIMD128" section that was within the #ifdef ESP32 and moved it just below the #ifdef ESP32 closing #endif - didn't see a need for it to be inside that after looking at the original opencv repository version of imgwarp.cpp. That's where I'm at.

I'm afraid I can't translate my changes over to the MAC environment for the previous poster with the sysconf issue (which is what I had early on). Perhaps the -DESP32=ON option isn't being set? That error happened in the parallel.cpp module, so maybe the quick and dirty fix is to do what I did and add the #define ESP32 1 at the top of the file and be done with it!
Perhaps the MAC user having the problem with file missing is because 3rd part modules aren't being built/included?

Seems like I didn't succeed afterall. Although I was able to get through the build, the link portion still failed with undefined reference to sysconf. I went back and tried again in vscode, but ran into errors compiling the imgwarp.cpp module. I'm giving up on trying to build this on windows; it's broken and I can't fix it and it just isn't worth the time and energy to fix. I've struggled with this for several days. I've built on WSL2 in win10 and seems to work, but still getting sysconf linker issue. I'm now moving over to using ubuntu inside a VBOX on win10 and will see what happens, but I'm not too optimistic. If this doesn't work, I give up. I've even tried building the examples, just as they exist in your distro and they won't build either, so something's broken and I can't fix it. I have built the hello_opencv example, though, successfully so there's something about the TTGO-DEMO that creates problems building on win10. Nice effort, though.

I quit! Anyone who has the time, energy and knowledge to make this repository build on Windows, hats off to you! I do believe that esp-idf has changed over the last 4 years and obviously this repository hasn't. It can be built on Ubuntu and it also can be built on Windows 10/WSL 2, but since USB devices are not visible to WSL, you can't flash from WSL, you've got to take the generated partition, bootloader and app bin files over to native WIN10 in order to use esptool.py to flash to the board. Even after having done so, I see a lot of messages on the serial monitor about i2c and sda and scl assigned to the same pins...don't know what those are about or if they're just "noise" which can be ignored. I never did get the ttgo_demo app to produce the output shown on the esp32-opencv repository, I just get a white screen. So, I'll go over to my rPi, install opencv-python and get back to work on my original project.

@johncblacker sorry to hear that. It is indeed possible that esp-idf has changes that requires new modifications on OpenCV files. As said, the project is at least working on Linux using esp-idf v4.2-dev released last year (should also be working on v4.2.1).
For Windows support, anyone succeeding in compiling on it can make a PR to share its modifications and built library.

Regarding MAC, were you able to start the compilation @aseitasi15 ?

@joachimBurket Sorry for late reply.

As you said, I was able to rebuild the OpenCV library in my environment and tried to build ttgo_demo with these, but the same problem occurred.
/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/lib/esp32-psram/no-rtti/libstdc++.a(thread.o):(.literal._ZNSt6thread20hardware_concurrencyEv+0x0): undefined reference to `sysconf'

The hello_opencv example works seamlessly. The ttgo_demo has a problem. There is no problem with the source code, and the OpenCV library has been rebuilt on my Mac, so all library dependencies should have been resolved as well. It was tested in version 4.3 of ESP-IDF and the version 4.1 is the same.

Is there anything else I can do about it?

I have encountered a similar error issue the first time I used the Canny function (you can see it here.
What I had done was to bypass the call with an #if !defined(ESP32) (as parallel is not supported, it won't be a problem until trying to support it). You can try isolating the file refering sysconf and bypassing it.

I had in mind making a docker container to do the build, which could help avoiding these errors (could also help with @johncblacker building issues on Windows). I'll update you if I succeed on doing it

@joachimBurket

// esp32 doesn't support sysconf call. FIXME: add support
#if !defined(_WIN32) && !defined(APPLE) && !defined(ESP32)
//static unsigned cpu_count_sysconf = (unsigned)sysconf( _SC_NPROCESSORS_ONLN );
//ncpus = minNonZero(ncpus, cpu_count_sysconf);
#endif
//return ncpus != 0 ? ncpus : 1;
return 1;
}

Following your direction, I handled the sysconf part from the parallel.cpp and then build it up again.
but this result is the same as before. I cleaned up the previous build and it seems like it does not bypass it. What do you think?

Hard to say like this, could you send the whole compilation output?

Hard to say like this, could you send the whole compilation output?


################################################################################
######################## build_opencv_for_esp32 script #########################
################################################################################
Using toolchain cmake file path: /Users/esp-idf/tools/cmake/toolchain-esp32.cmake
Will be installed in default library install path: /Users/Github/esp32-opencv/esp32/scripts/../lib/opencv
================================================================================
Configuring with cmake -DCMAKE_BUILD_TYPE=Release -DESP32=ON -DBUILD_SHARED_LIBS=OFF -DCV_DISABLE_OPTIMIZATION=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_OPENMP=OFF -DWITH_PTHREADS_PF=OFF -DWITH_QUIRC=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_VA_INTEL=OFF -DWITH_EIGEN=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_WEBP=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_LAPACK=OFF -DWITH_ITT=OFF -DWITH_PROTOBUF=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF -DBUILD_LIST=core,imgproc,imgcodecs -DBUILD_JAVA=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DCV_ENABLE_INTRINSICS=OFF -DCV_TRACE=OFF -DOPENCV_ENABLE_MEMALIGN=OFF -DCMAKE_TOOLCHAIN_FILE=/Users/esp-idf/tools/cmake/toolchain-esp32.cmake :
================================================================================
-- The CXX compiler identification is GNU 8.4.0
-- The C compiler identification is GNU 8.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMake Warning at cmake/OpenCVDetectCXXCompiler.cmake:77 (message):
  OpenCV: CMAKE_SYSTEM_PROCESSOR is not defined.  Perhaps CMake toolchain is
  broken
Call Stack (most recent call first):
  CMakeLists.txt:153 (include)


-- Detected processor:
CMake Warning at cmake/OpenCVDetectCXXCompiler.cmake:103 (message):
  OpenCV: unrecognized target processor configuration
Call Stack (most recent call first):
  CMakeLists.txt:153 (include)


-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB (check file: cmake/checks/atomic_check.cpp)
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
-- Enabled ESP32 target specific build
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.16", minimum required is "2.7")
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "2.7")
-- Cannot probe for Python/Numpy support (because we are cross-compiling OpenCV)
-- If you want to enable Python/Numpy support, set the following variables:
--   PYTHON2_INCLUDE_PATH
--   PYTHON2_LIBRARIES (optional on Unix-like systems)
--   PYTHON2_NUMPY_INCLUDE_DIRS
--   PYTHON3_INCLUDE_PATH
--   PYTHON3_LIBRARIES (optional on Unix-like systems)
--   PYTHON3_NUMPY_INCLUDE_DIRS
-- Found PythonInterp: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 (found suitable version "3.9.2", minimum required is "3.2")
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "3.9")
-- Cannot probe for Python/Numpy support (because we are cross-compiling OpenCV)
-- If you want to enable Python/Numpy support, set the following variables:
--   PYTHON2_INCLUDE_PATH
--   PYTHON2_LIBRARIES (optional on Unix-like systems)
--   PYTHON2_NUMPY_INCLUDE_DIRS
--   PYTHON3_INCLUDE_PATH
--   PYTHON3_LIBRARIES (optional on Unix-like systems)
--   PYTHON3_NUMPY_INCLUDE_DIRS
-- Performing Test HAVE_CXX_FSIGNED_CHAR
-- Performing Test HAVE_CXX_FSIGNED_CHAR - Success
-- Performing Test HAVE_C_FSIGNED_CHAR
-- Performing Test HAVE_C_FSIGNED_CHAR - Success
-- Performing Test HAVE_CXX_W
-- Performing Test HAVE_CXX_W - Success
-- Performing Test HAVE_C_W
-- Performing Test HAVE_C_W - Success
-- Performing Test HAVE_CXX_WALL
-- Performing Test HAVE_CXX_WALL - Success
-- Performing Test HAVE_C_WALL
-- Performing Test HAVE_C_WALL - Success
-- Performing Test HAVE_CXX_WERROR_RETURN_TYPE
-- Performing Test HAVE_CXX_WERROR_RETURN_TYPE - Success
-- Performing Test HAVE_C_WERROR_RETURN_TYPE
-- Performing Test HAVE_C_WERROR_RETURN_TYPE - Success
-- Performing Test HAVE_CXX_WERROR_NON_VIRTUAL_DTOR
-- Performing Test HAVE_CXX_WERROR_NON_VIRTUAL_DTOR - Success
-- Performing Test HAVE_C_WERROR_NON_VIRTUAL_DTOR
-- Performing Test HAVE_C_WERROR_NON_VIRTUAL_DTOR - Failed
-- Performing Test HAVE_CXX_WERROR_ADDRESS
-- Performing Test HAVE_CXX_WERROR_ADDRESS - Success
-- Performing Test HAVE_C_WERROR_ADDRESS
-- Performing Test HAVE_C_WERROR_ADDRESS - Success
-- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT
-- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT - Success
-- Performing Test HAVE_C_WERROR_SEQUENCE_POINT
-- Performing Test HAVE_C_WERROR_SEQUENCE_POINT - Success
-- Performing Test HAVE_CXX_WFORMAT
-- Performing Test HAVE_CXX_WFORMAT - Success
-- Performing Test HAVE_C_WFORMAT
-- Performing Test HAVE_C_WFORMAT - Success
-- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY
-- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY - Success
-- Performing Test HAVE_C_WERROR_FORMAT_SECURITY
-- Performing Test HAVE_C_WERROR_FORMAT_SECURITY - Success
-- Performing Test HAVE_CXX_WMISSING_DECLARATIONS
-- Performing Test HAVE_CXX_WMISSING_DECLARATIONS - Success
-- Performing Test HAVE_C_WMISSING_DECLARATIONS
-- Performing Test HAVE_C_WMISSING_DECLARATIONS - Success
-- Performing Test HAVE_CXX_WMISSING_PROTOTYPES
-- Performing Test HAVE_CXX_WMISSING_PROTOTYPES - Failed
-- Performing Test HAVE_C_WMISSING_PROTOTYPES
-- Performing Test HAVE_C_WMISSING_PROTOTYPES - Success
-- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES
-- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES - Failed
-- Performing Test HAVE_C_WSTRICT_PROTOTYPES
-- Performing Test HAVE_C_WSTRICT_PROTOTYPES - Success
-- Performing Test HAVE_CXX_WUNDEF
-- Performing Test HAVE_CXX_WUNDEF - Success
-- Performing Test HAVE_C_WUNDEF
-- Performing Test HAVE_C_WUNDEF - Success
-- Performing Test HAVE_CXX_WINIT_SELF
-- Performing Test HAVE_CXX_WINIT_SELF - Success
-- Performing Test HAVE_C_WINIT_SELF
-- Performing Test HAVE_C_WINIT_SELF - Success
-- Performing Test HAVE_CXX_WPOINTER_ARITH
-- Performing Test HAVE_CXX_WPOINTER_ARITH - Success
-- Performing Test HAVE_C_WPOINTER_ARITH
-- Performing Test HAVE_C_WPOINTER_ARITH - Success
-- Performing Test HAVE_CXX_WSHADOW
-- Performing Test HAVE_CXX_WSHADOW - Success
-- Performing Test HAVE_C_WSHADOW
-- Performing Test HAVE_C_WSHADOW - Success
-- Performing Test HAVE_CXX_WSIGN_PROMO
-- Performing Test HAVE_CXX_WSIGN_PROMO - Success
-- Performing Test HAVE_C_WSIGN_PROMO
-- Performing Test HAVE_C_WSIGN_PROMO - Failed
-- Performing Test HAVE_CXX_WUNINITIALIZED
-- Performing Test HAVE_CXX_WUNINITIALIZED - Success
-- Performing Test HAVE_C_WUNINITIALIZED
-- Performing Test HAVE_C_WUNINITIALIZED - Success
-- Performing Test HAVE_CXX_WSUGGEST_OVERRIDE
-- Performing Test HAVE_CXX_WSUGGEST_OVERRIDE - Success
-- Performing Test HAVE_C_WSUGGEST_OVERRIDE
-- Performing Test HAVE_C_WSUGGEST_OVERRIDE - Failed
-- Performing Test HAVE_CXX_WNO_DELETE_NON_VIRTUAL_DTOR
-- Performing Test HAVE_CXX_WNO_DELETE_NON_VIRTUAL_DTOR - Success
-- Performing Test HAVE_C_WNO_DELETE_NON_VIRTUAL_DTOR
-- Performing Test HAVE_C_WNO_DELETE_NON_VIRTUAL_DTOR - Failed
-- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_CXX_WNO_COMMENT
-- Performing Test HAVE_CXX_WNO_COMMENT - Success
-- Performing Test HAVE_C_WNO_COMMENT
-- Performing Test HAVE_C_WNO_COMMENT - Success
-- Performing Test HAVE_CXX_WIMPLICIT_FALLTHROUGH_3
-- Performing Test HAVE_CXX_WIMPLICIT_FALLTHROUGH_3 - Success
-- Performing Test HAVE_C_WIMPLICIT_FALLTHROUGH_3
-- Performing Test HAVE_C_WIMPLICIT_FALLTHROUGH_3 - Success
-- Performing Test HAVE_CXX_WNO_STRICT_OVERFLOW
-- Performing Test HAVE_CXX_WNO_STRICT_OVERFLOW - Success
-- Performing Test HAVE_C_WNO_STRICT_OVERFLOW
-- Performing Test HAVE_C_WNO_STRICT_OVERFLOW - Success
-- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION
-- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION - Success
-- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION
-- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION - Success
-- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER
-- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER - Success
-- Performing Test HAVE_C_FOMIT_FRAME_POINTER
-- Performing Test HAVE_C_FOMIT_FRAME_POINTER - Success
-- Performing Test HAVE_CXX_FFUNCTION_SECTIONS
-- Performing Test HAVE_CXX_FFUNCTION_SECTIONS - Success
-- Performing Test HAVE_C_FFUNCTION_SECTIONS
-- Performing Test HAVE_C_FFUNCTION_SECTIONS - Success
-- Performing Test HAVE_CXX_FDATA_SECTIONS
-- Performing Test HAVE_CXX_FDATA_SECTIONS - Success
-- Performing Test HAVE_C_FDATA_SECTIONS
-- Performing Test HAVE_C_FDATA_SECTIONS - Success
-- Performing Test HAVE_CPU_BASELINE_FLAGS
-- Performing Test HAVE_CPU_BASELINE_FLAGS - Success
-- Performing Test HAVE_CXX_FVISIBILITY_HIDDEN
-- Performing Test HAVE_CXX_FVISIBILITY_HIDDEN - Success
-- Performing Test HAVE_C_FVISIBILITY_HIDDEN
-- Performing Test HAVE_C_FVISIBILITY_HIDDEN - Success
-- Performing Test HAVE_CXX_FVISIBILITY_INLINES_HIDDEN
-- Performing Test HAVE_CXX_FVISIBILITY_INLINES_HIDDEN - Success
-- Performing Test HAVE_C_FVISIBILITY_INLINES_HIDDEN
-- Performing Test HAVE_C_FVISIBILITY_INLINES_HIDDEN - Failed
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - failed
-- Performing Test HAVE_C_WNO_SHORTEN_64_TO_32
-- Performing Test HAVE_C_WNO_SHORTEN_64_TO_32 - Failed
-- Performing Test HAVE_C_WNO_ATTRIBUTES
-- Performing Test HAVE_C_WNO_ATTRIBUTES - Success
-- Performing Test HAVE_C_WNO_STRICT_PROTOTYPES
-- Performing Test HAVE_C_WNO_STRICT_PROTOTYPES - Success
-- Performing Test HAVE_C_WNO_MISSING_PROTOTYPES
-- Performing Test HAVE_C_WNO_MISSING_PROTOTYPES - Success
-- Performing Test HAVE_C_WNO_MISSING_DECLARATIONS
-- Performing Test HAVE_C_WNO_MISSING_DECLARATIONS - Success
-- Performing Test HAVE_C_WNO_SHIFT_NEGATIVE_VALUE
-- Performing Test HAVE_C_WNO_SHIFT_NEGATIVE_VALUE - Success
-- Performing Test HAVE_C_WNO_UNDEF
-- Performing Test HAVE_C_WNO_UNDEF - Success
-- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH
-- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH - Success
-- math lib 'libm' not found; floating point support disabled
-- Performing Test HAVE_C_WNO_CAST_ALIGN
-- Performing Test HAVE_C_WNO_CAST_ALIGN - Success
-- Performing Test HAVE_C_WNO_UNUSED_PARAMETER
-- Performing Test HAVE_C_WNO_UNUSED_PARAMETER - Success
-- Performing Test HAVE_C_WNO_SIGN_COMPARE
-- Performing Test HAVE_C_WNO_SIGN_COMPARE - Success
-- ADE: Download: v0.1.1f.zip
-- OpenCV Python: during development append to PYTHONPATH: /Users/esp32-opencv/build/python_loader
-- Using whitelist: opencv_core;opencv_imgcodecs;opencv_imgproc
-- Module opencv_calib3d disabled by whitelist
-- Module opencv_features2d disabled by whitelist
-- Module opencv_flann disabled by whitelist
-- Module opencv_gapi disabled by whitelist
-- Module opencv_highgui disabled by whitelist
-- Module opencv_java_bindings_generator disabled by whitelist
-- Module opencv_ml disabled by whitelist
-- Module opencv_objdetect disabled by whitelist
-- Module opencv_photo disabled by whitelist
-- Module opencv_python_bindings_generator disabled by whitelist
-- Module opencv_python_tests disabled by whitelist
-- Module opencv_stitching disabled by whitelist
-- Module opencv_video disabled by whitelist
-- Module opencv_videoio disabled by whitelist
-- Excluding from source files list (optimization is disabled): modules/imgproc/src/corner.avx.cpp
-- Excluding from source files list (optimization is disabled): modules/imgproc/src/imgwarp.avx2.cpp
-- Excluding from source files list (optimization is disabled): modules/imgproc/src/imgwarp.sse4_1.cpp
-- Excluding from source files list (optimization is disabled): modules/imgproc/src/resize.avx2.cpp
-- Excluding from source files list (optimization is disabled): modules/imgproc/src/resize.sse4_1.cpp
-- Performing Test HAVE_CXX_WNO_DEPRECATED_DECLARATIONS
-- Performing Test HAVE_CXX_WNO_DEPRECATED_DECLARATIONS - Success
--
-- General configuration for OpenCV 4.2.0-dev =====================================
--   Version control:               4ebe172-dirty
--
--   Platform:
--     Timestamp:                   2021-08-04T19:33:49Z
--     Host:                        Darwin 19.6.0 x86_64
--     Target:                      Generic
--     CMake:                       3.21.0
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/local/bin/gmake
--     Configuration:               Release
--
--   CPU/HW features:
--     Baseline:
--       requested:                 DETECT
--
--   C/C++:
--     Built as dynamic libs?:      NO
--     C++ standard:                11
--     C++ Compiler:                /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++  (ver 8.4.0)
--     C++ flags (Release):         -mlongcalls -Wno-frame-address   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
--     C++ flags (Debug):           -mlongcalls -Wno-frame-address   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
--     C Compiler:                  /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
--     C flags (Release):           -mlongcalls -Wno-frame-address   -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG
--     C flags (Debug):             -mlongcalls -Wno-frame-address   -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
--     Linker flags (Release):      -Wl,--gc-sections
--     Linker flags (Debug):        -Wl,--gc-sections
--     ccache:                      NO
--     Precompiled headers:         NO
--     Extra dependencies:
--     3rdparty dependencies:       zlib libpng
--
--   OpenCV modules:
--     To be built:                 core imgcodecs imgproc
--     Disabled:                    world
--     Disabled by dependency:      calib3d features2d flann gapi highgui java_bindings_generator ml objdetect photo python_bindings_generator python_tests stitching video videoio
--     Unavailable:                 dnn java js python2 python3 ts
--     Applications:                -
--     Documentation:               NO
--     Non-free algorithms:         NO
--
--   GUI:
--
--   Media I/O:
--     ZLib:                        build (ver 1.2.11)
--     PNG:                         build (ver 1.6.37)
--     HDR:                         NO
--     SUNRASTER:                   NO
--     PXM:                         NO
--     PFM:                         NO
--
--   Video I/O:
--     FFMPEG:                      NO
--       avcodec:                   NO
--       avformat:                  NO
--       avutil:                    NO
--       swscale:                   NO
--       avresample:                NO
--
--   Parallel framework:            none
--
--   Other third-party libraries:
--     Custom HAL:                  NO
--
--   Python (for build):            /usr/bin/python2.7
--
--   Install to:                    /Users/Github/esp32-opencv/build/install
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/Github/esp32-opencv/build
core,imgcodecs,imgproc
Don't forget to check the cmake summary! Continue ? [y/N]

@aseitasi15 could you also send the ttgo-demo project compilation logs ?

@joachimBurket

[9/1120] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,24K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,3M,
storage,data,spiffs,0x310000,600K,
*******************************************************************************
[447/1120] Performing configure step for 'bootloader'
-- Found Git: /usr/local/bin/git (found version "2.23.0") 
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- The ASM compiler identification is GNU
-- Found assembler: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32
-- Project sdkconfig file /Users/esp32-opencv/esp32/examples/ttgo_demo/sdkconfig
-- Adding linker script /Users/esp-idf/components/esp32/ld/esp32.peripherals.ld
-- Adding linker script /Users/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script /Users/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld
-- Adding linker script /Users/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script /Users/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script /Users/esp-idf/components/bootloader/subproject/main/ld/esp32/bootloader.ld
-- Adding linker script /Users/esp-idf/components/bootloader/subproject/main/ld/esp32/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp32 esp_common esp_hw_support esp_rom esp_system esptool_py hal log main micro-ecc newlib partition_table soc spi_flash xtensa
-- Component paths: /Users/esp-idf/components/bootloader /Users/esp-idf/components/bootloader_support /Users/esp-idf/components/efuse /Users/esp-idf/components/esp32 /Users/esp-idf/components/esp_common /Users/esp-idf/components/esp_hw_support /Users/esp-idf/components/esp_rom /Users/esp-idf/components/esp_system /Users/esp-idf/components/esptool_py /Users/esp-idf/components/hal /Users/esp-idf/components/log /Users/esp-idf/components/bootloader/subproject/main /Users/esp-idf/components/bootloader/subproject/components/micro-ecc /Users/esp-idf/components/newlib /Users/esp-idf/components/partition_table /Users/esp-idf/components/soc /Users/esp-idf/components/spi_flash /Users/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/esp32-opencv/esp32/examples/ttgo_demo/build/bootloader
[511/1120] Performing build step for 'bootloader'
[1/86] Generating project_elf_src_esp32.c
[2/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/soc_include_legacy_warn.c.obj
[3/86] Building C object CMakeFiles/bootloader.elf.dir/project_elf_src_esp32.c.obj
[4/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2c_periph.c.obj
[5/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/gpio_periph.c.obj
[6/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/lldesc.c.obj
[7/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/adc_periph.c.obj
[8/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2s_periph.c.obj
[9/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/interrupts.c.obj
[10/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dac_periph.c.obj
[11/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/pcnt_periph.c.obj
[12/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/ledc_periph.c.obj
[13/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rmt_periph.c.obj
[14/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdmmc_periph.c.obj
[15/86] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/mpu_hal.c.obj
[16/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/soc_memory_layout.c.obj
[17/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sigmadelta_periph.c.obj
[18/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_io_periph.c.obj
[19/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/timer_periph.c.obj
[20/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/spi_periph.c.obj
[21/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/touch_sensor_periph.c.obj
[22/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/uart_periph.c.obj
[23/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdio_slave_periph.c.obj
[24/86] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/memory_layout_utils.c.obj
[25/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_mem.c.obj
[26/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_init.c.obj
[27/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random.c.obj
[28/86] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/wdt_hal_iram.c.obj
[29/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_encrypt.c.obj
[30/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/secure_boot.c.obj
[31/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random_esp32.c.obj
[32/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common_loader.c.obj
[33/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_flash.c.obj
[34/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common.c.obj
[35/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_efuse_esp32.c.obj
[36/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_partitions.c.obj
[37/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_qio_mode.c.obj
[38/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_table.c.obj
[39/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_init.c.obj
[40/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_sha.c.obj
[41/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_flash_config_esp32.c.obj
[42/86] Building C object esp-idf/spi_flash/CMakeFiles/__idf_spi_flash.dir/esp32/spi_flash_rom_patch.c.obj
[43/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp32/esp_efuse_api.c.obj
[44/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_fields.c.obj
[45/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp32/esp_efuse_fields.c.obj
[46/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/compare_set.c.obj
[47/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/flash_encrypt.c.obj
[48/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_utility.c.obj
[49/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp32/esp_efuse_utility.c.obj
[50/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp_image_format.c.obj
[51/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_pm.c.obj
[52/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/cpu_util.c.obj
[53/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api.c.obj
[54/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_esp32.c.obj
[55/86] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_crc.c.obj
[56/86] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_sys.c.obj
[57/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk_init.c.obj
[58/86] Building ASM object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_longjmp.S.obj
[59/86] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_uart.c.obj
[60/86] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_utility.c.obj
[61/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_init.c.obj
[62/86] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log_noos.c.obj
[63/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_time.c.obj
[64/86] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/bootloader_start.c.obj
[65/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_loader.c.obj
[66/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console_loader.c.obj
[67/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_wdt.c.obj
[68/86] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log.c.obj
[69/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_panic.c.obj
[70/86] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log_buffers.c.obj
[71/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_sleep.c.obj
[72/86] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console.c.obj
[73/86] Linking C static library esp-idf/log/liblog.a
[74/86] Linking C static library esp-idf/esp_rom/libesp_rom.a
[75/86] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk.c.obj
[76/86] Linking C static library esp-idf/esp_hw_support/libesp_hw_support.a
[77/86] Linking C static library esp-idf/efuse/libefuse.a
[78/86] Linking C static library esp-idf/bootloader_support/libbootloader_support.a
[79/86] Linking C static library esp-idf/spi_flash/libspi_flash.a
[80/86] Building C object esp-idf/micro-ecc/CMakeFiles/__idf_micro-ecc.dir/uECC_verify_antifault.c.obj
[81/86] Linking C static library esp-idf/micro-ecc/libmicro-ecc.a
[82/86] Linking C static library esp-idf/soc/libsoc.a
[83/86] Linking C static library esp-idf/hal/libhal.a
[84/86] Linking C static library esp-idf/main/libmain.a
[85/86] Linking C executable bootloader.elf
[86/86] Generating binary image from built executable
esptool.py v3.1-dev
Merged 1 ELF section
Generated /Users/esp32-opencv/esp32/examples/ttgo_demo/build/bootloader/bootloader.bin
[1008/1120] Building CXX object esp-idf/lcd/CMakeFiles/__idf_lcd.dir/iot_lcd.cpp.obj
/Users/esp32-opencv/esp32/examples/ttgo_demo/components/lcd/iot_lcd.cpp: In member function 'void CEspLcd::transmitCmdData(uint8_t, uint8_t, uint8_t)':
/Users/esp32-opencv/esp32/examples/ttgo_demo/components/lcd/iot_lcd.cpp:172:37: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
     lcd_cmd(spi_wr, (const uint8_t) cmd, &dc);
                                     ^~~
[1119/1120] Linking CXX executable ttgo_demo.elf
FAILED: ttgo_demo.elf 
: && /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++ -mlongcalls -Wno-frame-address  CMakeFiles/ttgo_demo.elf.dir/project_elf_src_esp32.c.obj -o ttgo_demo.elf  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/efuse/libefuse.a  esp-idf/app_update/libapp_update.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_ipc/libesp_ipc.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/pthread/libpthread.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/vfs/libvfs.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/tcpip_adapter/libtcpip_adapter.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/esp_event/libesp_event.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/lwip/liblwip.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/driver/libdriver.a  esp-idf/xtensa/libxtensa.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/perfmon/libperfmon.a  esp-idf/esp32/libesp32.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/cxx/libcxx.a  esp-idf/app_trace/libapp_trace.a  esp-idf/asio/libasio.a  esp-idf/cbor/libcbor.a  esp-idf/unity/libunity.a  esp-idf/cmock/libcmock.a  esp-idf/coap/libcoap.a  esp-idf/console/libconsole.a  esp-idf/nghttp/libnghttp.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc_cal/libesp_adc_cal.a  esp-idf/esp_hid/libesp_hid.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/protobuf-c/libprotobuf-c.a  esp-idf/protocomm/libprotocomm.a  esp-idf/mdns/libmdns.a  esp-idf/esp_local_ctrl/libesp_local_ctrl.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_serial_slave_link/libesp_serial_slave_link.a  esp-idf/esp_websocket_client/libesp_websocket_client.a  esp-idf/expat/libexpat.a  esp-idf/wear_levelling/libwear_levelling.a  esp-idf/fatfs/libfatfs.a  esp-idf/freemodbus/libfreemodbus.a  esp-idf/jsmn/libjsmn.a  esp-idf/json/libjson.a  esp-idf/libsodium/liblibsodium.a  esp-idf/mqtt/libmqtt.a  esp-idf/openssl/libopenssl.a  esp-idf/spiffs/libspiffs.a  esp-idf/ulp/libulp.a  esp-idf/wifi_provisioning/libwifi_provisioning.a  esp-idf/esp32-camera/libesp32-camera.a  esp-idf/lcd/liblcd.a  esp-idf/main/libmain.a  esp-idf/lvgl_gui/liblvgl_gui.a  -Wl,--cref -Wl,--Map=/Users/esp32-opencv/esp32/examples/ttgo_demo/build/ttgo_demo.map  -fno-rtti  -fno-lto  esp-idf/main/libmain.a  esp-idf/lvgl_gui/liblvgl_gui.a  esp-idf/asio/libasio.a  esp-idf/cbor/libcbor.a  esp-idf/cmock/libcmock.a  esp-idf/unity/libunity.a  esp-idf/coap/libcoap.a  esp-idf/esp_adc_cal/libesp_adc_cal.a  esp-idf/esp_hid/libesp_hid.a  esp-idf/esp_local_ctrl/libesp_local_ctrl.a  esp-idf/esp_websocket_client/libesp_websocket_client.a  esp-idf/expat/libexpat.a  esp-idf/fatfs/libfatfs.a  esp-idf/wear_levelling/libwear_levelling.a  esp-idf/freemodbus/libfreemodbus.a  esp-idf/jsmn/libjsmn.a  esp-idf/libsodium/liblibsodium.a  esp-idf/mqtt/libmqtt.a  esp-idf/openssl/libopenssl.a  esp-idf/spiffs/libspiffs.a  esp-idf/wifi_provisioning/libwifi_provisioning.a  esp-idf/protocomm/libprotocomm.a  esp-idf/protobuf-c/libprotobuf-c.a  esp-idf/mdns/libmdns.a  esp-idf/console/libconsole.a  esp-idf/json/libjson.a  esp-idf/esp32-camera/libesp32-camera.a  esp-idf/lcd/liblcd.a  ../main/opencv/libopencv_imgcodecs.a  ../main/opencv/3rdparty/liblibpng.a  ../main/opencv/3rdparty/libzlib.a  ../main/opencv/libopencv_imgproc.a  ../main/opencv/libopencv_core.a  ../main/opencv/libade.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/efuse/libefuse.a  esp-idf/app_update/libapp_update.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_ipc/libesp_ipc.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/pthread/libpthread.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/vfs/libvfs.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/tcpip_adapter/libtcpip_adapter.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/esp_event/libesp_event.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/lwip/liblwip.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/driver/libdriver.a  esp-idf/xtensa/libxtensa.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/perfmon/libperfmon.a  esp-idf/esp32/libesp32.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/cxx/libcxx.a  esp-idf/app_trace/libapp_trace.a  esp-idf/nghttp/libnghttp.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_serial_slave_link/libesp_serial_slave_link.a  esp-idf/ulp/libulp.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcoexist.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcore.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libespnow.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libmesh.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libnet80211.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libpp.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libsmartconfig.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libwapi.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libphy.a  /Users/esp-idf/components/esp_wifi/lib/esp32/librtc.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/efuse/libefuse.a  esp-idf/app_update/libapp_update.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_ipc/libesp_ipc.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/pthread/libpthread.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/vfs/libvfs.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/tcpip_adapter/libtcpip_adapter.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/esp_event/libesp_event.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/lwip/liblwip.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/driver/libdriver.a  esp-idf/xtensa/libxtensa.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/perfmon/libperfmon.a  esp-idf/esp32/libesp32.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/cxx/libcxx.a  esp-idf/app_trace/libapp_trace.a  esp-idf/nghttp/libnghttp.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_serial_slave_link/libesp_serial_slave_link.a  esp-idf/ulp/libulp.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcoexist.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcore.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libespnow.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libmesh.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libnet80211.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libpp.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libsmartconfig.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libwapi.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libphy.a  /Users/esp-idf/components/esp_wifi/lib/esp32/librtc.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/efuse/libefuse.a  esp-idf/app_update/libapp_update.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_ipc/libesp_ipc.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/pthread/libpthread.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/vfs/libvfs.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/tcpip_adapter/libtcpip_adapter.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/esp_event/libesp_event.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/lwip/liblwip.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/driver/libdriver.a  esp-idf/xtensa/libxtensa.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/perfmon/libperfmon.a  esp-idf/esp32/libesp32.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/cxx/libcxx.a  esp-idf/app_trace/libapp_trace.a  esp-idf/nghttp/libnghttp.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_serial_slave_link/libesp_serial_slave_link.a  esp-idf/ulp/libulp.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcoexist.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcore.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libespnow.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libmesh.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libnet80211.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libpp.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libsmartconfig.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libwapi.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libphy.a  /Users/esp-idf/components/esp_wifi/lib/esp32/librtc.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/efuse/libefuse.a  esp-idf/app_update/libapp_update.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_ipc/libesp_ipc.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/pthread/libpthread.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/vfs/libvfs.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/tcpip_adapter/libtcpip_adapter.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/esp_event/libesp_event.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/lwip/liblwip.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/driver/libdriver.a  esp-idf/xtensa/libxtensa.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/perfmon/libperfmon.a  esp-idf/esp32/libesp32.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/cxx/libcxx.a  esp-idf/app_trace/libapp_trace.a  esp-idf/nghttp/libnghttp.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_serial_slave_link/libesp_serial_slave_link.a  esp-idf/ulp/libulp.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcoexist.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libcore.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libespnow.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libmesh.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libnet80211.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libpp.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libsmartconfig.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libwapi.a  /Users/esp-idf/components/esp_wifi/lib/esp32/libphy.a  /Users/esp-idf/components/esp_wifi/lib/esp32/librtc.a  -Wl,--wrap=mbedtls_mpi_exp_mod  -u esp_app_desc  -u pthread_include_pthread_impl  -u pthread_include_pthread_cond_impl  -u pthread_include_pthread_local_storage_impl  -u ld_include_panic_highint_hdl  -u start_app  -u start_app_other_cores  -L /Users/esp-idf/components/esp_rom/esp32/ld  -T esp32.rom.ld  -T esp32.rom.api.ld  -T esp32.rom.libgcc.ld  -T esp32.rom.newlib-data.ld  -T esp32.rom.syscalls.ld  -Wl,--wrap=longjmp  -u vfs_include_syscalls_impl  -L /Users/esp-idf/components/esp_wifi/lib/esp32  /Users/esp-idf/components/xtensa/esp32/libxt_hal.a  -L /Users/esp32-opencv/esp32/examples/ttgo_demo/build/esp-idf/esp32  -T esp32_out.ld  -L /Users/esp32-opencv/esp32/examples/ttgo_demo/build/esp-idf/esp32/ld  -T esp32.project.ld  -L /Users/esp-idf/components/esp32/ld  -T esp32.peripherals.ld  -u call_user_start_cpu0  -mfix-esp32-psram-cache-issue  -mfix-esp32-psram-cache-strategy=memw  -Wl,--gc-sections  -Wl,--undefined=uxTopUsedPriority  -u app_main  -lm  esp-idf/newlib/libnewlib.a  -u newlib_include_heap_impl  -u newlib_include_syscalls_impl  -u newlib_include_pthread_impl  -lgcc  -u __cxa_guard_dummy  -lstdc++  esp-idf/pthread/libpthread.a  esp-idf/app_trace/libapp_trace.a  -lgcov  esp-idf/app_trace/libapp_trace.a  -lgcov  -lc && :
/Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/lib/esp32-psram/no-rtti/libstdc++.a(thread.o):(.literal._ZNSt6thread20hardware_concurrencyEv+0x0): undefined reference to `sysconf'
/Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /Users/esp-idf_tools/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/lib/esp32-psram/no-rtti/libstdc++.a(thread.o): in function `std::thread::hardware_concurrency()':
/builds/idf/crosstool-NG/.build/HOST-x86_64-apple-darwin12/xtensa-esp32-elf/src/gcc/libstdc++-v3/src/c++11/thread.cc:177: undefined reference to `sysconf'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
The terminal process "bash '-c', 'cmake --build .'" terminated with exit code: 1.

@aseitasi15 @johncblacker I've tested to build OpenCV and the ttgo_demo project using Espressif idf docker image, and it is working out of the box!

What I've done:

  1. Pull image:

    $ docker pull espressif/idf:release-v4.2
    
  2. Build OpenCV:

    $ cd esp32-opencv
    $ docker run --rm -v $PWD:/project:z -w /project -it espressif/idf
    
    # ./esp32/scripts/build_opencv_for_esp32.sh /opt/esp/idf/tools/cmake/toolchain-esp32.cmake /project/esp32/examples/ttgo_demo/main
    
  3. Build ttgo_demo project:
    Without leaving the container, go to the ttgo_demo project to build it:

    # cd esp32/examples/ttgo_demo
    # idf.py build
    
  4. Flash the project to the device
    Under Linux, the project can be flashed from the container to the serial device, but not under Windows or Mac. Therefore, the container must be exited, and then the command idf.py flash monitor can be launched from the ttgo_demo project (of course the host must have the esp-idf toolchain installed).

NOTE: Pull this repo before trying this because there was a typo in the build_opencv_for_esp32.sh script.

Tried the the docker approach...ran into a problem with the docker run... to build esp32-opencv. I was building in a powershell command shell on windows 10 and it gave me a "Variable reference is not valid : was not followed by a valid variable name character. Perhaps I'm missing some setup work required prior to issuing the docker run? Any ideas? I'll research on my own for now.

Looks like PWD needs to have curly brackets around it: ${PWD}:

I got past the docker run... step but the build of opencv fails with the following output:
 ./esp32/scripts/build_opencv_for_esp32.sh /opt/esp/idf/tools/cmake/toolchain-esp32.cmake /project/esp32/examples/ttgo_demo/main
################################################################################
######################## build_opencv_for_esp32 script #########################
################################################################################
Using toolchain cmake file path: /root/esp/esp-idf/tools/cmake/toolchain-esp32.cmake
Will be installed in user-defined library install path: /project/esp32/examples/ttgo_demo/main/opencv
================================================================================
Configuring with cmake -DCMAKE_BUILD_TYPE=Release -DESP32=ON -DBUILD_SHARED_LIBS=OFF -DCV_DISABLE_OPTIMIZATION=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_OPENMP=OFF -DWITH_PTHREADS_PF=OFF -DWITH_QUIRC=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_VA_INTEL=OFF -DWITH_EIGEN=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_WEBP=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_LAPACK=OFF -DWITH_ITT=OFF -DWITH_PROTOBUF=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF -DBUILD_LIST=core,imgproc,imgcodecs -DBUILD_JAVA=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DCV_ENABLE_INTRINSICS=OFF -DCV_TRACE=OFF -DOPENCV_ENABLE_MEMALIGN=OFF -DCMAKE_TOOLCHAIN_FILE=/root/esp/esp-idf/tools/cmake/toolchain-esp32.cmake :
================================================================================
./esp32/scripts/build_opencv_for_esp32.sh: line 55: cmake: command not found

Don't forget to check the cmake summary! Continue ? [y/N]y
cp: cannot create regular file './3rdparty/ade/ade-0.1.1f/sources/ade/source/alloc.cpp': No such file or directory

****************** end of output ***********************

So, there is no "ade" sub-directory in ./3rdparty perhaps I needed to download the repository again?
No, I looked in the github repo and there's no ade sub-directory under 3rdparty. Any ideas?

Sorry about the formatting of my previous comment.

I am ecstatic to say: IT WORKED! A few hitches along the way which were my problems as I'm not a docker guru and I also made a mistake by opening the build_opencv_for_esp32 in windows notepad, which screwed up line endings and then when I went to run it bash didn't like it. Also, since I had uninstalled the esp-idf toolchain so I had to flash using esptool; but it did work. So, now I have another platform on which to experiment with opencv - currently working on my rPi 3b+ also and have a "speed camera" setup pointing at the street outside my home...too many automobiles going over the speed limit!
Thank you so much Joachim Burket for taking your valuable time to continue working on this issue. I hope others have similar success with the "docker" approach; it sure makes everything so much easier. I did, by the way, have to pull the esp32-opencv repository from git as I noticed you'd made some changes, so I just deleted my old esp32-opencv local directory and cloned the repo again.

@johncblacker Yeah! Nice to hear! Very glad this project can be used :)
I'll update the doc on how to build with docker. Did you have other issues than the $PWD thing related to Windows?

@aseitasi15 not sure I understand, but if you build into the container, the python version used should be the good one (the one espressif configured in the container's image).
Did you run the idf.py build from into the container?

I looked at my output from the build and I don't see that it built the python bindings (I think this means it doesn't build the equivalent of "opencv-python"), but I could be wrong about that. In fact searching the output of the make for opencv there is no string "python" in the output at all. It's simply building opencv for use with c/c++ - I think. Python 3.6.9 is the default python in the docker container (python -V = Python 3.6.9). Python 2.7 would have to be in the espresif-idf repository. If you look in /opt/esp/python_env you'll see idf4.4_py3.6_env, no mention of python 2.7. So, my conclusion is: don't worry about python 2.7 you should be running python version 3 and should be good to go with that. But, again, this build doesn't include python, so you'd have to modify the build in order to write your scripts in python - I think.

As I thought back on the whole idea of using docker it now makes sense why the build works - it's building inside a Ubuntu 18.04.5 system and that has worked for me before; it was the windows "native" build that didn't/doesn't work. But, hey, I'm good with it. In fact there really was no mention of being able to use ESP32-OPENCV in Python...I am curious, though, it the build would work with python build enabled in the cmake config.

@aseitasi15 not sure I understand, but if you build into the container, the python version used should be the good one (the one espressif configured in the container's image).
Did you run the idf.py build from into the container?

I followed the instructions to build opencv as noted above which is to use the shell script for that. I did use idf.py build to build the ttgo_demo app. But, remember, that app is not a python app, it is c++/c code. If you're looking to write python code on the ESP32, using perhaps micropython, then the esp32-opencv repository would have to be built with python support; and you'd have to get it over to micropython (something like a pip install or perhaps a setup...). I did try, once, to do a pip install opencv-python a couple of months ago and it fails because there just isn't enough memory to install it. The other approach, if you're building a web app is to use the opencv javascript bindings and you wouldn't have to load the opencv.js onto the esp32, but it'd be on the client/web browser machine either locally or you could link to it in the html code.

commented

Hello, I'm getting this error:

/project/modules/core/src/softfloat.cpp:3537:107: error: call of overloaded 'softdouble(int)' is ambiguous
 3537 | static const float64_t exp_prescale = float64_t::fromRaw(0x3ff71547652b82fe) * float64_t(1 << EXPTAB_SCALE); 

when clicking yes here. Don't forget to check the cmake summary! Continue ? [y/N]y and after the 53% aprox. And gives me the same error for some more lines in softfloat.cpp.

Anyone knows how could I solve it?