-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation errors in Linux using latest checkins #112
Comments
Thanks for pointing this out. The warning was because of std::move. I've removed it and tested in Ubuntu 14.04 as well. Please get latest and try it out! |
@sytelus Thank you for the quick response. However, I'm still getting errors with the latest checkin when compiling the plugin with UE 4.13:
and later on the errors get clipped due to volume:
|
Above error is occurring in ROSFlight code that I recently integrated. It's because std::exception doesn't have constructor to take char*. Most compilers allow this anyway but it might get caught with stricter options. If you replace std::exception by std::runtime_error, the error would go away. My linux m/c is toast right now so if you had like to make these changes and submit PR, I would be happy to take your contributions. Alternatively, I can do these changes and push sometime next week. |
@sytelus I updated the ROSIFlight .hpp files to use the
|
Thanks for making progress! Basically, we need to turn off these warnings for GCC. To do this, open up StrictMode.hpp and then insert following line after line #32 (you might find couple of copies, change all):
As you might see, that section of code basically tells GCC which warnings to ignore. So we just add above new warnings in the existing list. This list of warnings gets turned off for selected sections in our code base, specifically any external code for which we don't have control. Let nail this down! |
@sytelus We're getting close! The The compiler output:
|
My guess is that we probably have to also include directories in PublicIncludePaths? To try this, Open AirSim.Build.Cs.
|
@sytelus I rolled in the update you suggested, and that fixed the header include issue, thanks. However, there are a couple of new errors that pop up during compilation:
The second error seems like it can be fixed by changing |
@inkjet @sytelus I was facing same issues on Linux.
Your lines 39-41 here (https://github.com/Microsoft/AirSim/blob/40eb4a1911620ec474d8e6835bcb702904c258aa/AirLib/include/controllers/rosflight/firmware/mixer.hpp#L41) should be just :
You can see the changes I made here in my fork madratman@d6955ea#diff-85b48f089b02420d5c806ab6c433521e @sytelus @lovettchris if this looks okay, I can make a PR.
|
Thanks, I picked up your fixes already, no need for a pull request. I also removed the static from the rosflight sensors gravity field which might solve the undefined symbol: _ZN9rosflight7Sensors7gravityE. |
Thanks! Ah, I made around a minute before you commented anyway :D |
Thanks for keeping this thread alive! I'll also try the latest check-in now. |
@inkjet no problem! let me know how it goes as I am facing issues in UE now: I am able to "Play" the Landscape Mountain environments, however I see these relevant error and warning both when I click Play on Landscape Mountain, or with the AirSim plugin : This gist of log might be more readable - https://gist.github.com/madratman/e6e3bac7d6b3bc32ea04fd1fad6caa5f#file-airsim_ue
|
I get similar compiler errors and warnings when running with or without AirSim. Without AirSim : https://www.youtube.com/watch?v=bTas8PQ3KzI&feature=youtu.be Log without AirSim:https://gist.github.com/madratman/60a445535f20985f97f2a35f6d9ba3a6 Any help would be greatly appreciated. I am stuck at the last part now :( |
@lovettchris sorry for bugging again, any ideas about why this is happening? I don't have a clue on how to to debug this. |
@inkjet Did the compilation worked for you with the latest version? I'm still getting the following errors
Do we need to add the (char*) casting as did @madratman ? |
@a2 haven't looked at the latest commits, but you can try this branch in my fork https://github.com/madratman/AirSim/tree/gigabyte_working or better just check the diffs for |
@madratman I've managed to get everything compiling. I don't have the compilation issue but it seems I am now stuck at the same place as you; UE4Editor crash when I press the play button. One additional thing I've noticed if I switch to SimGameMode and try to save the project, it crashes. `[2017.04.09-19.11.41:694][945]LogLinux: === Critical error: === [2017.04.09-19.11.41:694][945]LogLinux: Fatal error! [Callstack] 00 0x00007fd7775738bf FLinuxPlatformStackWalk::CaptureStackBackTrace(unsigned long long*, unsigned int, void*) ` |
Good news, bad news: @AlexandreBorowczyk Using the latest checkin (as of April 7th), I was able to get the plugin to compile and @lovettchris The odd part is that when I launch AirSim using The console output says everything is loading correctly, but could this be related to the warning about SpawnActor?
|
Are you also using Unreal 4.15 ? When I launch Landscape Mountains the log says this, and the picture comes up fine: LogLoad: Game class is 'SimGameMode_C' Perhaps you should check that your map is not corrupted? My Content\Maps folder contains this: |
@lovettchris I'm using Unreal 4.14.3, as 4.15 wasn't recommended for the first builds of AirSim. Would this issue be related to #155? I will try with 4.15 later today. Also, my Content/Maps folder contains a single file: The map works for the "Hanglider" game mode, so it appears to be valid. |
I have 4.15 and have both files with similar sizes. and yes, handglider / without airsim works |
Same, I have 4.15. However, I choose to use a basic C++ project. |
@lovettchris Confirmed that the project crashes when I select "SimGameMode" and press play using Unreal Editor 4.15.1. Console output:
|
Same here, tested on both 4.15.0 and 4.15.1. I compiled airsim in docker container though (with newer libc++), and run it on host with libc++ 3.7.X, not sure if this could be the cause. |
Has anybody made any progress so far on this issue? |
I have the off-topic question but: how did you manage to compile your test project with Qt at all? |
He's just using the QT debugger, didn't say he compiled the code with QT. Alexandre, thanks for the stack trace, I've been studying the ASimModeBase class defined in SimModeBase.?pp and it has these private members:
So the crash appears to be related to this "record_file", but this file is not opened by default, it should be in the default state, destructing it should be simple. You could double check that the startRecording meethod is never called. So I'm guessing there is some other memory corruption problem going on that just happens to show up at this time. I have an idea on something that could be helpful. Can you add a ASimModeBase::~ASimModeBase descructor and put a breakpoint on it and take a look at the members of this class and see if they look ok. Also put a breakpoint on the constructor and see how many times it gets called. This is what I see on Windows, notice the record_file has a null buffer: |
And since this is in standard library code the other thing to check is how did you get the libcxx on your machine? Did you use the ~/cmake/getlibcxx.sh script and build it locally using your clang ? |
@lovettchris Yes, i understand that he uses Qt debugger, the question was how did he setup Qt project and how was he able to launch it? I watched this video https://www.youtube.com/watch?v=RnINgMbJx5Q |
can we move that to a separate issue so I can focus on the crash problem here? Let's call it "Debugging AirSim on Linux" and get input from multiple folks on the best way to do that. |
Done. |
This might be the same issue as issue #144. I checked in a possible workaround for the crash. See commit 43baa4f. |
@lovettchris. thanks for looking into this again. Just tried with 43baa4f, same result - it crashes. I have the log here if it helps. |
Ok, rats, this fixed a similar crash on Windows, do I was hoping it would help. Thanks for trying it out. |
@lovettchris I've gave a quick try at setting breakpoints in ASimModeBase's constructor and destructor. |
Yes, this is normal behavior, I see the same thing on Windows. Multiple ASimModeBase objects come and go, so this seems to be normal behavior for the UE editor. Note that record_file is not a pointer, but it is an empty ofstream, so it should contain null buffers inside it. I'll have to offer a prize to who ever finds this annoying bug :-) PS: I also updated the rpclib bits, can you pull the latest and try that too ? |
Hahah yeah it's a head scratcher. I went over the linux build instructions and I dont think I've did the steps regarding libjsoncpp0 and i have Ubuntu 16.04. Could that have a impact? |
Closing as latest compilation seems to be working fine. |
It appears that this checkin adding ROSFlight functionality is causing my AirSim compilation with Ubuntu 16.04 to fail. I had success with previous AirSim versions.
Here is the compiler output -- I wonder if these are warnings on Windows, but errors using clang 3.8 on Linux:
The text was updated successfully, but these errors were encountered: