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

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

superstatic
Beginner
961 Views
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
Honored Contributor III
961 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.
0 Kudos
superstatic
Beginner
961 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.
0 Kudos
Reply