Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
7681 Discussions

LINK : fatal error LNK1104 when /Qguide-par option is added



I am very new to programming and the Intel compiler so please bear with me if I have missed something basic. =)

I am attempting to enable the auto-parallelization guide option (/Qguide-par) with Intel Parallel Studio XE 2013 and Microsoft Visual Studio 2010 Professional in Windows 7. Compiling the project goes fine (options that differ from default are /O3, /Qparallel and basic run-time checks set to default, i.e. should be disabled) but when I try to append /Qguide-par as a command line option (in Project Properties in VS2010) the linker fails with the following error:

1>LINK : fatal error LNK1104: cannot open file 'Debug\test2.obj'

The additional dependencies (under Linker -> Input in Project Properties) look like this:


Full build output looks like this:

1>------ Build started: Project: test2, Configuration: Debug Win32 ------
1>Build started 2013-07-03 02:51:06.
1>  Creating "Debug\test2.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>  Building with Intel(R) C++ Compiler XE 13.1
1>  ***** ClCompile (Win32 - Intel C++)
1>  All outputs are up-to-date.
1>  test2.cpp
1>  GAP REPORT LOG OPENED ON Wed Jul 03 02:51:06 2013
1>  Number of advice-messages emitted for this compilation session: 0.
1>ipo : error #11018: Cannot open Debug\test2.obj
1>  xilink: executing 'link'
1>  LINK : C:\Users\Eric\documents\visual studio 2010\Projects\test2\Debug\test2.exe not found or not built by the last incremental link; performing full link
1>LINK : fatal error LNK1104: cannot open file 'Debug\test2.obj'
1>Build FAILED.
1>Time Elapsed 00:00:00.22
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

It should be added that this is a very simple test project with just one .cpp file to compile. I tried re-installing both Visual Studio 2010 and Intel Parallel Studio but the problem persists. Could this be related to system environment variables or might there simply be some dependent file missing that is required for the guide-par option to work? Any other ideas that I haven't considered would be greatly appreciated.

Best regards,
Eric Kjellén

0 Kudos
4 Replies
Black Belt

Did you check the documentation of your compiler to see whether it is possible to generate a .obj while /Qguide is in effect?   It looks as if the answer may still be no.

Valued Contributor II
1. Please follow Tim's advise to verify what that option does. 2. There is a strange compilation error in your Build Log and here it is: ... 1>InitializeBuildStatus: 1> Creating "Debug\test2.unsuccessful build" because "AlwaysCreate" was specified. ... 3. This is what command line help says: ... /Qguide-par[:] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) ... 4. Please post your simple test case with a complete set of command line options. Thanks.

Thanks, I checked the compiler documentation for the Qguide-par option and it does state "When this option is specified, the compiler does not produce any objects or executables" So I'm guessing that the problem was that I tried to build the project (which was not necessary). I found that under Tools -> Intel Composer XE 2013 -> Guided Auto Parallelism there is the option to perform an analysis from there. However, the program does not recognize the loop I want it to analyze. (All I get in the GAP report log is the following message: "Number of advice-messages emitted for this compilation session: 0.") I will create a new thread for this it as it is a different problem, however if that is seen as unnecessary please go ahead and merge the threads.

Valued Contributor II
>>...However, the program does not recognize the loop I want it to analyze. (All I get in the GAP report log is >>the following message: "Number of advice-messages emitted for this compilation session: 0.")... If the test case is very simple why wouldn't you upload it? Also, it doesn't make sense to create another thread. Thanks. I checked how /Qparallel option works on a classic matrix multiplication algorithm ( with 3 loops ) and parallelization works very good. On my Ivy Bridge system 8 threads are created and processing is at least ~5x faster compared when just 1 thread is used.