Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Linker errors

Artur_C_
Beginner
1,221 Views

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-yet-it-is-there

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.

 

0 Kudos
19 Replies
Artur_C_
Beginner
1,221 Views

@sukruth

 

I'm sorry but could you please be more careful whilst reading?

Read again how the code is structured in my original post on stackoverflow. Specifically pay attention to the constructor.

Without patronizing you, default constructor is a constructor which CAN be invoked without any arguments.

Please read my OP again, please read code provided by me again, and please reply again.

Artur

P.S.

For the issue with statement being not reachable I did provide you a testcase. You have code and #remark produced by your compiler.

P.S.S.

As for the linking errors, I will give you the errors produced by linker, but as a testcase you have to use source code of UE4. Because that is the minimal compilable testcase which produces that errors.

Could you please address all of those issues mentioned by me?

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Artur,

              Sorry I missed it. I would investigate further and get back to you.

Regards,

Sukruth H V

0 Kudos
Shenghong_G_Intel
1,221 Views

Artur,

Regarding #1 issue: Check with the code "http://ideone.com/WdhE9U", it can be build with 15.0 compiler (15.0.0.108 Build 20140726). You may need to provide your compiler version to verify. :)

Thanks,

Shenghong

0 Kudos
Artur_C_
Beginner
1,221 Views

@Shenghong
Hi, It only compiles when you do that VERY separated and simplified
code sample. Just observe that you have empty classes there. It DOES
NOT compile the original UE4 code. It gives error message about lack
of default ctor.

P.S.
I do have newest version of your compiler.

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Artur,

             I have tried to download the Unreal Engine 4 to reproduce the linker errors, But unfortunately seems like there are no public repos. Is there any link/pointer from where I can download the source? I tried to download it from the Github.

Regards,

Sukruth H V

0 Kudos
Artur_C_
Beginner
1,221 Views

Sukruth, Hi, specify place where you want me to upload that for you so you can check those errors I've mentioned in my OP. Let me know where do you want it to be uploaded.

Thank you.

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Artur,

              Do you have an Intel Premier Support account? If yes, then you can file an issue there and upload the code there itself.

Which Geo are you located in? URL :- "premier.intel.com "

Regards,

Sukruth H V

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Artur,

              How big is the file size (May be after zipping)?

Regards,

Sukruth H V

0 Kudos
Artur_C_
Beginner
1,221 Views

Hi,

1. The file is quite big, above 1GB.

2. No, I don't have intel premium support. I've downloaded trial version of your newest compiler in order to try it out, and check how it compares with VS compiler.

Looking forward to hear back from you.

Regards

Artur

0 Kudos
Artur_C_
Beginner
1,221 Views

@ sukruth-v

Hi, I do indeed have access to intel premium support. Alas, I couldn't submit my problem there. The page simply doesn't work.

I really need help with this.

Thank you.

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Arthur,

               Sure, I can help you on that. Could you please let me know the issue with the Intel Premier Support access?

Note:- If you are sharing any confidential information, Please do use the "Private message", so only Intel engineers can see your message.

Regards,

Sukruth H V

0 Kudos
Artur_C_
Beginner
1,221 Views

The difficulties I'm having:

I can log in to intel premier support web.

After I press submit issue:

Cannot select any product in the next step. I've tried to type "icl", c++ compiler, cpp compiler, but no results were given. I've also tried to press browse button, but even though new pop up opened no results could be obtained in it.

Need help with that.^^^

 

Thank you.

0 Kudos
TimP
Honored Contributor III
1,221 Views

I've been wondering whether IPS has intentionally disabled new issue submission, pending the next scheduled overhaul down time.  I've tried 5 times the last 2 weeks, before and after the time intervals when the announcement said uploads would be disabled temporarily.   Currently, I'm at a hotel, and the site seems to have additional blocking set.

0 Kudos
Artur_C_
Beginner
1,221 Views

Hi Tim,

Thank you for your info. I'll try couple of days from now and see if this issue disappeared.

Kinda disappointing first impression with intel, have to admit.

Compiler cannot compile very good code base, gives incorrect remarks in very simple cases (see my OP), staff (not you though) seem to be playing "pushing the envelope" game whilst not paying attention to (not reading correctly) OP. Website doesn't work even though it should, duhhh...

I'm a game developer, love C++. I am preparing my company (however small it may be) to switch to UE4 (unreal engine 4), and I'd really like to be able to use C++11 to its full extent and I've read that intel's compiler fully supports it.

Unfortunately it looks to me that intel's compiler cannot cope with C++ code from rather good code base.

I'm not giving up on intel though. I'd really like to use it, but I must be able to compile and build my games with it. Otherwise it is waste of mine and your time.

Best regards

Artur
 

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Artur,

             Sorry for the delay, But we want to help you faster and seems you are facing an issue with IPS login. I am looking into this issue. In the meanwhile, I have mailed(atch.cpp@gmail.com) you the steps to upload/send the source code to us. Please do respond.

Regards,

Sukruth H V

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Hi Artur,

               Please do let me know if you have received the email.

Regards,

Sukruth H V

0 Kudos
Artur_C_
Beginner
1,221 Views

@Sukruth-v

Hi, got the email.

Will follow the instructions and as soon as I did what you asked me to do I let you know.

Regards

Artur

0 Kudos
Artur_C_
Beginner
1,221 Views

@Sukruth-v

Hi, I've uploaded to idz.admin@intel.com the files you need plus some extra files so it will help you get started. I suggest that first you watch the video attached, then read file HowTo.txt, and then try to compile it! ;)

The file VSToolchain.cs is file modified by me in order to run icl.exe via unreal build tool. Simply copy and replace into the one provided with the source.

Let me know if you need help with anything else.

Regards

0 Kudos
Sukruth_H_Intel
Employee
1,221 Views

Thanks Artur. I would get back to you if I have any queries about the build.

Regards,

Sukruth H V

0 Kudos
Reply