I'm trying to cross-compile my desktop project to a raspberry pi. My projects uses Qt 5.6, and QtWebEngine.
I followed this guide: RaspberryPi2EGLFS
It runs without the webengine-using parts, but I cannot use the WebEngine module because I cannot compile it. It gives me this:
gyp: Undefined variable clang_dir in /Users/aeron/raspi/qtwebengine/src/core/core_generated.gyp
gyp: Undefined variable clang_dir in /Users/aeron/raspi/qtwebengine/src/core/resources/resources.gyp
Project ERROR: -- running gyp_qtwebengine failed --
I have already tried to manually insert an empty variable, but these two lines are just the tip of the iceberg.
I get to this error too when I grab the full qt5 repository and try to compile it.
Update
I made some progress. With editing qtwebengine/src/core/config/embedded_linux.pri I managed to solve the clang_dir problem. I've just added the line clang_dir=0 to the end of the list of the variables.
But there is another problem of the same kind:
gyp: Undefined variable c_sources in /Users/aeron/raspi/qtwebengine/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp
Project ERROR: -- running gyp_qtwebengine failed --
How can I resolve this? Or how can I turn off the ffmpeg part of the webengine, I don't have plans to use it anyway...
Update 2
Now it think I solved the ffmpeg problem. The way: in the file src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp I set the use_system_ffmpeg to 1.
Now I have a new problem:
Updating projects from gyp files...
gyp: Dependency '/Users/aeron/raspi/qtwebengine/src/3rdparty/chromium/base/base.gyp:symbolize#host' not found while trying to load target /Users/aeron/raspi/qtwebengine/src/3rdparty/chromium/base/base.gyp:base#host
Project ERROR: -- running gyp_qtwebengine failed --
So it still does not compile.
Probably not what you want to hear, but QWebEngine is not officially supported on the Pi.
From
https://doc.qt.io/qt-5/qtwebengine-platform-notes.html#all-platforms
"On Linux, Clang or GCC version 4.7 or later is required. Supported configurations are linux-g++ and linux-clang."
However, I know for a fact, it can be cross-compiled (I did it on Ubuntu 16) for Qt 5.7.1 and Qt5.8.0, but only if you configure for device "linux-rasp-pi2-g++" and not for "linux-rpi3-g++". It CANNOT be built for Qt5.9.0.
Note that Qt5.8.0 has bad OpenGL performance on the Pi. This issue is not present with Qt5.7 or 5.9.
Then again - it is probably too heavy for the Pi anyway.
Related
As many other somewhat similar issues reported, having problem building for simulator on M1 Macbook, trying to see if anyone has resolved this. Including my own framework using Swift Package Manager. There is nothing special about it other than it is a swift framework which builds fine on its own. Everything else builds fine it just seems that for whatever reason I can not force to build this package for x86_64 arch.
Open XCode using Rosetta works - but it is a hack and a work around I would think with performance issues
Building for device works
Attempted to change build settings as follows:
I have also tried to set "Build active architecture only" to NO
This question has been asked before with prior Xcode versions:
Their solutions were:
Remove armv7 from Valid architectures
Change debug information format to DWARF instead of DWARF with dSYM File
I have tried all of these but the archiving still gets stuck at a particular task, always the same task number.
I have looked into the report navigator, and their are issues. But just warnings. There is one error "FontAwesome" build target, which doesn't say much. But the app use to build with version 10.1
For those that come across this issue, it was because of FontAwesome. I had installed it via CocoaPods. Not sure what the issue was, but I manually installed it into the project and it resolved the issue.
I was able to work around this by EITHER changing my Optimization Level in Release to "No Optimization" OR by changing Compilation Mode from "Whole Module" to "Incremental".
Upload using Xcode 10.1 instead of Xcode 10.2.
I try to get wxWidgets installed on a Windows7 x64 Machine but wxWidgets Installation doesn't even work, I cannot get a Hello World App running.
I found out there are several ways to get the library installed and I tried some of them (with Cygwin and the included mingw64 compiler, with mingw64 using diffrent settings), all the time I get Errors while building the library. Could somebody point me out what's wrong with my current setup (which was also my first try) or show another solution?
First I installed mingw64 with the online installer to c:/mingw64. I tried some different setups concerning Version and Threads, but ended up with 4.9.2, x86_64, posix Threads, sjlj Exceptions.
Then I downloaded MYSYS from sourceforge.net and extracted it to C:/mysys.
Then I created a folder C:/wxWidgets and mounted it as /wxWidgets, downloaded the wxWidgets 3.0.2 source and put in into my mysys-home folder.
From /wxWidgets I executed: /home/Martin/wxWidgets-3.0.2/configure --host=x86_64-w64-mingw32 --disable-shared --enable-monolithic
The configure did his job without errors though some libraries couldn't be found and built-in libraries were taken instead (jpeg, png, regex, tiff, expat).
Then I executed make and it ran for some minutes and suddenly crashed. The only output was make: *** [monolib_any.o] Error 1
The last executed command was /wxWidgets/bk-make-pch ./.pch/wxprec_monolib -D__WXMSW__ ...
Right before, there is an note concerning POSIX paths: "CYGWIN environment variable option "nodosfilewarning" turns off this warning...
All the other tries ended up like this one, make suddenly hung up. Any help appreciated.
If the make/compile process really dies without any other error messages, the most likely explanations are that either it runs out of memory (but even then normally there would be some error message) or some hardware problem, it's really not supposed to do this on a working machine.
So my advice would be to run some hardware diagnostics. If this shows nothing, run make -n and execute the command used to compile any.cpp by hand by copy and pasting it.
I'm working on setting up a dev environment for school. We're going to be using GLUT to do graphics programming. I installed freeglut on Ubuntu using
sudo apt-get install freeglut3-dev
I am going to be using code::blocks to write everything (as per the instructor's specifications) but when I try to build the default GLUT project in code::blocks, I get the following
Compiling: main.cpp
Linking console executable: bin/Debug/glut_test
/usr/bin/ld: cannot find -lXxf86vm
collect2: ld returned 1 exit status
It looks to me like I'm missing some dependency, but I can't for the life of me figure out what it is. I have no idea what -lXxf86vm is, nor does Google or any other forum I can find.
Does anyone have ideas?
Update 1) this may have something to do with the fact that I have an Nvidia Optimus card in this laptop.
I tried running the default OpenGL project as well and it's throwing the following error
main: X server has no OpenGL GLX extension
I'm going to try installing bumblebee and see if that gets me anywhere
I have no idea what -lXxf86vm is, nor does Google or any other forum I can find.
This library provides an API for the XF86VidModeSwitch extension. XF86VidMode has been superseeded by XRandR, but freeglut may need it for its game mode support.
Just install the package "libxxf86vm-dev",
Update 1) this may have something to do with the fact that I have an Nvidia Optimus card in this laptop.
No, that's not the reason for this particular library to be missing
I tried running the default OpenGL project as well and it's throwing the following error
Well, you have not installed the NVidia-Drivers correctly.
CodeBlocks always adds "Xxf86vm" to new GLUT projects.
I have no idea what it is, or why CodeBlocks adds it, (very annoying bug?) but you almost definitely DONT NEED IT!.
You can find it under: Project -> Build options... -> Linker settings.
Select your project name in the left pane, and it should appear under: "Link libraries".
Now, Just delete it from the list. Your code should compile and run fine without it.
I started playing with the Kinect and I would like to use skeleton tracking using OpenNI.
Since my knowledge of c++ is limited, the easiest option is to use the ofxOpenNI addon for OpenFrameworks.
I've downloaded the addon, and successfully compiled the example, but the application can't load a dylib:
[Session started at 2011-02-24 11:46:27 +0000.]
dyld: Library not loaded: #executable_path/./../../../data/openni/lib/libnimCodecs.dylib
Referenced from: /Users/george/Downloads/FirefoxDownloads/of_preRelease_v0062_osx_FAT/apps/examples/NI_userIsolation_4/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug
Reason: no suitable image found. Did find:
/Users/george/Downloads/FirefoxDownloads/of_preRelease_v0062_osx_FAT/apps/examples/NI_userIsolation_4/bin/emptyExampleDebug.app/Contents/MacOS/./../../../data/openni/lib/libnimCodecs.dylib: unknown required load command 0x80000022
/Users/george/Downloads/FirefoxDownloads/of_preRelease_v0062_osx_FAT/apps/examples/NI_userIsolation_4/bin/emptyExampleDebug.app/Contents/MacOS/./../../../data/openni/lib/libnimCodecs.dylib: unknown required load command 0x80000022
/usr/lib/libnimCodecs.dylib: unknown required load command 0x80000022
The Debugger has exited due to signal 5 (SIGTRAP).The Debugger has exited due to signal 5 (SIGTRAP).
I am using XCode on osx 10.5.8 with OpenFrameworks 062.
This was a bit of background, but I imagine the dylib problem is something general.
I have the requested dylib files in my project, and the path seems ok.
Any clues ?
Sounds like the libs, though present, aren't compatible with your system -- it finds them but can't load them.
And indeed, checking the README on the OpenNI github page, in the section "Release Notes", we find the following:
* MacOSX: Only OSX 10.6 (Snow Leopard) with an Intel based CPU is currently supported.
You have the source, obviously, but fixing this yourself would probably be quite a chore. Otherwise, you could wait and see if future releases add Leopard compatibility, or you could upgrade your OS.