I already installed and tested the Veins v4a2 successfully (with the RSUexample included). In order to add the ITS-G5 application layer to the Veins, I tried to use the "Artery" unsuccessfully as when trying to run the example, it throws an error like:
Error in module (cModule) RSUExampleScenario (id=1) during network
setup: Class "Veins::ObstacleControl" not found
Perhaps its code was not linked in, or the class wasn't registered with >Register_Class(), or in the case of modules and channels, with >Define_Module()/Define_Channel().
The steps I followed are:
Download Vanetza (and the modules required)
Build Vanetza with no errors
Download Artery
Build Artery liked with Vanetza with no errors
Copy the "Artery" folders and files (examples, src, tests, Makefile, configure...), to the Veins folder, overwriting the files.
The build of the Veins is done correctly, but the execution of both (artery and veins) examples fail with the showed error.
Actually, the same error raises if I try to run the Artery or RSU examples from the Artery code directly, without the Veins code (it seems as the Artery code constains the Veins already).
Has anybody faced this issue before?
First of all, you don't need to copy Artery into Veins and overwrite any files because your assumption is correct: Artery's repository contains the full Veins sources because Artery is an add-on built upon Veins.
The error message is actually a little bit misleading but if you take a closer look at the full output log you will most probably find a line about an undefined reference stating which symbol is actually missing in the compiled binary. This is often caused by building Vanetza in debug and Artery in release mode or vice versa.
Related
I do have a strange behavior with a flutter package I am building. It uses FFI to integrate a custom-made c++ library.
When I run flutter run -d windows --release the code starts and I do have the window with the code running.
However, when I go to the directory where the executable is stored and I run it, the program starts but the library is not loaded. I do see also that when I run flutter test, it complains that it cannot load the library. I have checked that the dll's needed are there using dependenciesGUI.exe and it seems that everything is fine, at least on my side. I do see however that within kernel32.dll I am missing ext-ms-win-oobe-query-l1-1-0.dll.
I am using Visual Studio 2022 with the x64 configuration.
Any idea on what could be the issue? For me it is VERY puzzling to be able to run the software through flutter but not with the executable directly.
Thanks!
Yours,
Pi-r
EDIT:
I compared my package with a fresh package built with flutter. With a fresh package, the behavior is the one expected: I can have the program run normally or with flutter run.
I compared the libraries of the clean package with the ones linked in my package. They are the same (with the same missing dlls which do not seem to pose an issue).
I also checked that the exported functions I needed where present -> It is the case.
The only difference I can see is that using flutter run adds a series of libraries to the path. Has I am a Linux person, I do not know of a tool that could be used to detect what is the missing library. I am open to write a separated c++ code that would load the library if it could help me identify what is the issue... ANY tips/tricks would be greatly appreciated :)
I finally found the issue I had and it is related to a different behavior under Linux and under Windows (as you will guess, I am a Linux person).
When compiled under Linux, I can force the compiler to link multiple libraries relatively to my main library. I discovered that this is not the case under Windows. Either the dlls are in the executable folder or in the Path.
For the sake of code clarity, my package uses two different libraries. Library A, which is compiled from flutter with the ffi package, called library B. First the second library was in the asset folder and with the relative linking of Linux, it was working perfectly. But it did not work under Windows until I explicitly copied the two in the same directory of the executable.
The solution was then to ensure that both libraries are copied correctly in the directory of the flutter executable. This can be done easily if you add the dependent libraries to the bundle variable in the CMakeLists.txt of the package.
However, this doesn't work when you do the testing (flutter test). As the bundle mechanism seems to be not propagated to the test function. Therefore here, the only solution is to copy the dependent libraries to the root directory of the source code :vomiting_face:
I must point out that this is only the case under Windows, for Linux, it works out of the box...
Just downloaded the project from Harmony 3 with all the relevant libraries and when hitting compile i'm getting lot of errors.
When compiling a project contain free rtos+usb cdc+rtc+nvm its works fine, but after adding the wifi it fail.
Include video of the entire process, from adding the project to compiling it:
https://www.youtube.com/watch?v=HADJdTM_noE
Something is wrong with the ide, installed on another laptop and got the same problems. support ticket open two weeks ago and they cant help.
All had to do is to donwload ALL the harmony content there are. (33Gb)
I'm trying to set up a Windows Server-based continuous integration server to completely build and package an Unreal Engine 4 project. The vast majority of the process works, but at the content cooking stage I keep running into the following errors:
********** COOK COMMAND STARTED **********
Running UE4Editor Cook for project C:\workspace\CEIT_ingame-native-plugins_PR-44\sampleProjects\unreal\ShooterGame26\ShooterGame.uproject
Commandlet log file is C:\Unreal426\Windows\Engine\Programs\AutomationTool\Saved\Cook-2021.07.05-13.56.23.txt
Running: C:\Unreal426\Windows\Engine\Binaries\Win64\UE4Editor-Cmd.exe C:\workspace\CEIT_ingame-native-plugins_PR-44\sampleProjects\unreal\ShooterGame26\ShooterGame.uproject -run=Cook -TargetPlatform=WindowsClient -fileopenlog -ddc=DerivedDataBackendGraph -unversioned -abslog=C:\Unreal426\Windows\Engine\Programs\AutomationTool\Saved\Cook-2021.07.05-13.56.23.txt -stdout -CrashForUAT -unattended -NoLogTimes -UTF8Output
LogInit: Display: Running engine for game: ShooterGame
LogModuleManager: Warning: ModuleManager: Unable to load module 'C:/Unreal426/Windows/Engine/Binaries/Win64/UE4Editor-OpenGLDrv.dll' because the file couldn't be loaded by the OS.
LogModuleManager: Warning: ModuleManager: Unable to load module 'C:/Unreal426/Windows/Engine/Plugins/Lumin/MagicLeap/Binaries/Win64/UE4Editor-MagicLeap.dll' because the file couldn't be loaded by the OS.
Took 14.257796s to run UE4Editor-Cmd.exe, ExitCode=1
ERROR: Cook failed.
(see C:\Users\jenkins\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Unreal426+Windows\Log.txt for full exception trace)
AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
BUILD FAILED
Specifically, UE4Editor-OpenGLDrv.dll and UE4Editor-MagicLeap.dll cannot be loaded, but there's not any clear indication as to why this is, just that "the file couldn't be loaded by the OS". The log files written to disk don't tell me much more than the information above. I've verified that both DLLs are actually present on the CI server, so I suspect that there is some other sub-dependency missing.
I've tried running Dependencies on the Unreal executable and the DLLs mentioned in the logs to work out which DLLs might be missing on the server machine itself, but this takes over three hours to run to completion, so is a bit awkward and time-consuming to do repeatedly. I've followed the advice regarding missing dependencies from this page, and have gone through all of the likely DLLs that were reported as not found by the Dependencies utility (mostly DirectX/OpenGL related ones), but the build still fails and I'm running out of ideas.
Is there any easy way in Windows to work out exactly why a DLL fails to load? I seem to remember that Windows DLL loading error messages are nowhere near as informative as on Linux, but perhaps there's a tool or an easier method to work it out that I'm not familiar with.
EDIT: I've narrowed things down somewhat - if I attempt to load glu32.dll completely dynamically in a program of my own, I get the load error Could not load C:\Windows\System32\glu32.dll: The specified procedure could not be found. As this is on the load attempt, rather than attempt at looking up a function, it implies that some procedure is missing on a sub-dependency of glu32.dll, but I don't know how I'd go about identifying which one it is.
You can try to delete Engine/Intermediate and click GenerateProjectFiles.bat to regenerate the whole project if you use UE Source code to start up, see UE documentation and rebuild with Visual Studio.
If you use the UE4-Editor to start up lacking dll, just add dependency within YourProject.build.cs like a third party, see UE document.
I decided to create a new OMNeT++ project to keep my applications separated from the Veins project.
However, I am facing problems when I try to execute the appls from my project src folder.
I've already configured my project and Veins according to the following link:
https://omnetpp.org/pmwiki/index.php?n=Main.HowToExtendAProject
I also tried to recreate the makefiles from my project but it doesnt work.
My .cc files use Register_Class() and Define_Module() properly but the Error Log keeps showing this error Class not found -- perhaps its code was not linked in, or the class wasn't registered with Register_Class(), or in the case of modules and channels, with Define_Module()/Define_Channel() -- in module (omnetpp::cModule)
I really feel the problem has to do with the makefiles because when I import this application from my project to Veins src folder it works perfectly.
Ps.: I'm using OMNeT 5.1 + Veins 4.5 + Sumo 0.28
Any help or suggestions would be appreciated.
My builds for device keep failing, for simulator all is fine. I should note: in the past I could build for device just fine, but not anymore.
I've created a library that is the base for my project. As part of the library build process, the x86 and ARM code get merged into 1 binary, then the binary and the appropriate headers are copied to the directory ~/devel/bin
My other project has this directory included (no copy, a link). The library is added to the target of the project and the headers are included by setting the appropriate user header search path (a subdirectory of ~/devel/bin).
When I build for device I get the following warnings:
/Users/user/Desktop/ProjectName/ProjectName/ViewController.m:57: error: 'service' undeclared (first use in this function)
Service is pointer to an SDService instance (an object from the library).
Can anyone give me some pointers on how to fix this issue? I tried recreating the project, but without success.
This is seriously f*cked up. Been trying to fix this issue for the last 3 or 4 hours, but finally found the solution. The issue seems to be the compiler. I switched from LLVM+GCC to LLVM 2.0. Hope everything else works fine with this compiler, but at least I can build again.