Quantcast
Channel: Intel® C++ Compiler
Viewing all articles
Browse latest Browse all 1616

Linker errors

$
0
0

Guys, I'm working now with Unreal Engine 4, and source code compiles perfectly!!! with Visual Studio compiler (cl.exe).

The same source code couldn't compile with your newest intel c++.There were 2 minor issues, one that intel's compiler didn't recognize default ctor where in fact the default ctor was present. Link to that question:

http://stackoverflow.com/questions/26325468/lack-of-default-constructor-...

Second error was really irrelevant:

http://stackoverflow.com/questions/26325765/very-disturbing-error-message

Another issue I'm having with your compiler is that I'm getting remark:

../Source/Runtime/Core/Public/Async/TaskGraphInterfaces.h(624): remark #111: statement is unreachable
            return FConstructor(new TGraphTask(TTask::GetSubsequentsMode() == ESubsequentsMode::FireAndForget ? NULL : FGraphEvent::CreateGraphEvent(), Prerequisites ? Prerequisites->Num() : 0), Prerequisites, CurrentThreadIfKnown);
            ^
            detected during instantiation of "TGraphTask<TTask>::FConstructor TGraphTask<TTask>::CreateTask(const FGraphEventArray *, ENamedThreads::Type) [with TTask=EURCMacro_StreamOutTextureDataCommand]" at line 2483 of "C:\ue4\UnrealEngine-4.1.1-release\Engine\Source\Runtime\Engine\Private\ContentStreaming.cpp"

Which basically tells me that statement is unreachable. Interestingly I've checked the source code:

<code>

static FConstructor CreateTask(const FGraphEventArray* Prerequisites = NULL, ENamedThreads::Type CurrentThreadIfKnown = ENamedThreads::AnyThread)
    {
        if (sizeof(TGraphTask) <= FBaseGraphTask::SMALL_TASK_SIZE)
        {
            void *Mem = FBaseGraphTask::GetSmallTaskAllocator().Allocate();
            return FConstructor(new (Mem) TGraphTask(TTask::GetSubsequentsMode() == ESubsequentsMode::FireAndForget ? NULL : FGraphEvent::CreateGraphEvent(), Prerequisites ? Prerequisites->Num() : 0), Prerequisites, CurrentThreadIfKnown);
        }
        return FConstructor(new TGraphTask(TTask::GetSubsequentsMode() == ESubsequentsMode::FireAndForget ? NULL : FGraphEvent::CreateGraphEvent(), Prerequisites ? Prerequisites->Num() : 0), Prerequisites, CurrentThreadIfKnown);
    }

</code>

How on earth that statement is flagged as unreachable?! I'm sorry but I would NOT expect such wrong messages from Intel's compiler!

Now, after fixing those issues in source code of Unreal Engine 4 I was able to successfully compile it. Alas! I'm getting linker errors about unresolved externals!

How is that possible? That code compiles (and links) with VS! Intel's compiler is supposed to be drop in yet it cannot compile and link really good code base.

Anyway, the question is, how to get rid of those pesky linker errors?

Thank you.

 


Viewing all articles
Browse latest Browse all 1616

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>