Community
cancel
Showing results for 
Search instead for 
Did you mean: 
superstatic
Beginner
203 Views

invalid directive '/Intel(R) compiler non-linkable IL object file' encountered; ignored

After working with a project in debug for some time I tried to rebuild it under release mode and I'm getting the following:

1>Component.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>Composite.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>Object.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>Scene.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>System.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>SystemAI.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>Task.obj : warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered; ignored
1>SystemAI.def : error LNK2001: unresolved external symbol CreateAISystem
1>SystemAI.def : error LNK2001: unresolved external symbol DestroyAISystem
1>SystemAI.def : error LNK2001: unresolved external symbol InitializeAISystem
1>..\\..\\lib\\Release\\SystemAI.lib : fatal error LNK1120: 3 unresolved externals

It builds under debug mode. Everything is set up to build using intel parallel studio SP1 (compiler XE 12.1) with default compiler/linker settings. Any ideas what might be causing this?

Thanks
0 Kudos
2 Replies
TimP
Black Belt
203 Views

As you asked for guesses, without giving much useful information, my guess is that you have IPO (link time optimizable) objects which aren't compatible with the linker you are using. If you made IPO objects with you current ICL, you must use ICL to drive the link, so that xilink is invoked automatically. I would expect such an error if you asked CL or Microsoft link to process these objects directly. You may also get such an error with IPO objects when the compiler installation which made the objects is a different major version from the one you are using for link. The link time optimizable files from ICL (IPO) and CL (/GL) aren't compatible, in addition to the incompatibilities between major versions of either compiler.
If you want to mix compiler and linker versions where the IPO formats aren't compatible, you must turn off the IPO or GL option. There are both project properties in VS and command line options for that.
superstatic
Beginner
203 Views

I just went through the options again and discovered that interprocedural optimization was turned off accidentally. Sorry for the trouble and thanks for your help.
Reply