I'd say that adding -L/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux/arm-linux-gnueabihf/lib is unnecessary as gcc's driver should be able to find its own libraries.
Regarding your problems with ffmpeg, I'm sorry that I don't know how cmake works, but after spending some time trying to understand why cross-building fails, here are my remarks:
- using 'make VERBOSE=1' will show you the exact commands used - from what I can see, cmake manages to find the full path to the compiler and calls it using this path - installing packages such as libavcodec-dev installs the version for your host, not for your ARM target - therefore, you should add ffmpeg to OpenCV, maybe using the 3rdparty directory, but I don't know how it is supposed to be used - on my system, I have noticed that cmake says 'Could NOT find JPEG), then "Media I/O: JPEG: libjpeg (ver 62)" and I can see that g++ is called with -I<path-to-OpenCV>/3rdparty/libjpeg, which is confusing - similarly, it looks like cmake is calling pkg-config which most probably queries the host, not the target FS - you have to make sure that the build process will find or build all the dependencies for ARM, which probably means it has to build ffmpeg - I don't know if all these are peculiarities of cmake or OpenCV, but it makes me wonder whether OpenCV is really supporting cross-compilation? - did you ask OpenCV community?
Sorry to ask more questions :-)
Christophe.
On 12 February 2013 20:11, Derek Rollend derek.rollend@gmail.com wrote:
I added the lib path explicitly so I knew that arm-linux-gnueabihf-g++ was definitely linking against the correct hard float libraries. Perhaps this is unnecessary, but I just wanted to be sure. I've been using OpenCV 2.2 because that was the version that was known to compile successfully from that TI wiki page you sent earlier. I am now trying with 2.4.0, I'll let you know if I succeed.
It's definitely not easy. All the tools seem to be there, it's piecing everything together correctly that is the tough part. Push on!
On Tue, Feb 12, 2013 at 1:35 PM, Fernan fhledesma@gmail.com wrote:
Hi Derek,
Derek Rollend <derek.rollend@...> writes:
Add the Linaro toolchain bin directory to your PATH environment variable: export PATH="/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux
/bin:$PATH"
ok. I thought there was a CMake variable like CMAKE_C_COMPILER_PATH. I use this http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_use_a_different_compiler.3F (method3).
On Mon, Feb 11, 2013 at 4:04 PM, Fernan
fhledesma@gmail.com wrote:
Derek Rollend <derek.rollend <at> ...> writes:
Fernan, I'm using CMake 2.8.0. I have not tried to compile OpenCV with FFMPEG support
yet, although I will be trying to do this soon. I have only successfully compiled OpenCV 2.2 using the Linaro hard float compiler. Here is my toolchain.cmake file:
set( CMAKE_SYSTEM_NAME Linux ) set( CMAKE_SYSTEM_PROCESSOR arm ) set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc ) set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ ) set( CMAKE_CXX_FLAGS_RELEASE "-L /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.01-20130125_linux/
arm-linux-gnueabihf/lib -O3 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard -ftree-vectorize -ftree-vectorizer-verbose=3 -funroll-loops" ) set( CMAKE_CXX_FLAGS_DEBUG "-L /opt/gcc-linaro-arm-linux-gnueabihf- 4.7-2013.01-20130125_linux/arm-linux-gnueabihf/lib -O3 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard -ftree-vectorize -ftree-vectorizer-verbose=3 -funroll-loops" )
I have just successfully compiled but without FFMPEG too, that is the problem.
but first, I will ask you some question:
Why you need to add the link path /opt/gcc-linaro-arm-linux-gnueabihf- 4.7-2013.01-20130125_linux/arm-linux-gnueabihf/lib?
Why you use OpenCV2.2? The lastest stable release is OpenCV2.4.3.
You see, I'm a newbie about cross compiling, I'll have to study concepts of cross-compilation, I thought it was easy.
linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain