Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29249 Discussions

Program compiles in release but not debug

sumitm1
Beginner
2,789 Views
Hi,
I have a situation in which the 32 bit application compiles in release mode but not in debug mode (IVF12). The error is
error LNK2019: unresolved external symbol
I have checked the Includes and Libraries folder options and they are identical. What elsecould bedifferent.

The second issue is when I compile this is 64 bit, again Release compiles but debug gives me error of target machine is not correct.
Error 1 fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' x64\\Debug/splines.obj

I actually went to Linker Advanced and Target Machine says not set. Where is it picking up the target machine is X86. I am running on Win7 64 bit

Steve, this is also the same app were I had posted earlier that the 32 bit app runs out of memory as noted in my earlier post. The 64 bit works fine

Any help would be appreciated

Regards,


Sumit
0 Kudos
12 Replies
Steven_L_Intel1
Employee
2,789 Views
You need to show us the whole error LNK2019.

For the target issue, look under the Command Line page for Linker and remove the target specifier. If you converted this project from CVF it probably has something there.
0 Kudos
sumitm1
Beginner
2,789 Views
Steve,
In the 64bit version in the command line there sure was a I386 reference which when deleted got out of that error but now both debug modes (32bit and 64 bit) have the same linker errors shown below

Link: executing 'link'

blow3d.obj : error LNK2019: unresolved external symbol _OPENGL_GLUT_mp_F9XGLUTPOSTREDISPLAY@0 referenced in function _VIEW_MODIFIER_mp_RESET_TO_INIT

blow3d.obj : error LNK2019: unresolved external symbol _OPENGL_FWRAP_mp_F9XGLMATRIXMODE@4 referenced in function _VIEW_MODIFIER_mp_RESET_VIEW

blow3d.obj : error LNK2019: unresolved external symbol _OPENGL_FWRAP_mp_F9XGLPOPMATRIX@0 referenced in function _VIEW_MODIFIER_mp_RESET_VIEW

Read_dxf.obj : error LNK2001: unresolved external symbol _OPENGL_FWRAP_mp_F9XGLPOPMATRIX@0

3dtemplot.obj : error LNK2001: unresolved external symbol _OPENGL_FWRAP_mp_F9XGLPOPMATRIX@0

Also how do I take my email address off my login name above. Is there a telephone line I can call to explain this login name problem. There are probably 2 accounts under my name and I want to merge it into one and they both have the same email address

Sumit

0 Kudos
Steven_L_Intel1
Employee
2,789 Views
You are using an OpenGL build that is for 32-bits. The modules you are using specify 32-bit STDCALL external names for the various routines. This may be a misconfiguration in your build of the OpenGL wrappers. I have not looked at the "F9X" version of f90GL to see how it is done.

You should be able to click on your login name in the upper right and edit your profile to specify a different "display name". You can also send the ISN support staff a question here.
0 Kudos
sumitm1
Beginner
2,789 Views
Steve,

Managed to change display name. Thanks

The f90gl1.2.12 comes with two lib directories
lib-IA32 and lib-Intel64
They have similar name files. Even the glut32.dll is named the same. I dont know why could not call it glut64.dll and glut64.lib but one cannot run the exe if the correct dll file is not in the system32 directory.
To compile the 32 bit and 64 bit versions I have to referernce the different files for the 32 bit or 64 bit or else it will not compile.
The strange thing is that both release versions compile but debug versions do not

Is there a way to delete the debug config and create one with same settings from release

Sumit
0 Kudos
Steven_L_Intel1
Employee
2,789 Views
The DLL names and library names would be the same. That's fine. The problem you're having is in the modules, where the module is compiled with the x64 compiler but has been conditionalized for 32-bit STDCALL (which is not what Intel Fortran would use even on 32-bit).

You can delete the configuration using Build > Configuration Manager.
0 Kudos
sumitm1
Beginner
2,789 Views
Steve,

Thanks for pointing to the right direction.
I took off the cvf compatibility. That started giving me errors on libcmtd.lib . When I ignored that lib, the debug of both versions now work


I am still trying to figure out why the 32bit version says insufficient memory on file browsing (please refer to my previous thread) while the 64 bit version works perfectly. Same code

Sumit
0 Kudos
sumitm1
Beginner
2,789 Views
Steve,

Found a solution to that file browsing as well with insufficient memory
When I had Fortran 10 , I had to put a stack reserve size and stack committ size to make the application launch on winxp machines
So I thought of removing that in this Win7 , Fortran 12 version to inherit from project and it seems to run fine. So under 64bit it was able to allocate the memory and under 32 bit it probably could not. Dont know why I needed for years to committ to a size of stack and it is good that I dont need that and neither the cvf compatibility option

Sumit
0 Kudos
Steven_L_Intel1
Employee
2,789 Views
Glad to hear it. I suggest for 32-bit using the Optimization > Heap Arrays property - set it to 0 - if you have problems with stack overflow.
0 Kudos
sumitm1
Beginner
2,789 Views
Steve,
With Intel Fortran 12, I am noticing that some of the subroutines can be expanded or collapsed with the + or - sign. They showed up automiatically while other subroutines do not have that feature. I can select a portion of code and right cick and do outlinining/hide but that that does not show what subroutine I just hid. Why is it some have that and some dont and how do I set it for all. This is a good feature and a good reason to upgrade also as it makes the code easier to see and manage.

Secondly, the Intel Vtune Amplifier and Inspector are two new additions I think compared to what I had in IVF 10. One of them complains that I dont have a license. Are those supposed to have come with my Intel composer DVD license or I have to buy separately and what is the cost

Sumit
0 Kudos
Steven_L_Intel1
Employee
2,789 Views
Sumit,

The code-outlining feature is new as of Composer XE 2011 Update 6 and only for VS2010. If you find it is operating inconsistently, I suggest first making sure you're running the latest update (8 as I write this, with 9 coming in a few days). There is no setting other than to enable/disable outlining - see the release notes for details.

Inspector XE and VTune Amplifier XE are separately licensed products - they are not part of Composer XE. You can get a bundle of Fortran with Amplifier and Inspector as "Intel Fortran Studio XE", or with the addition of Intel C++ as well as Intel Parallel Studio XE.

US Pricing is here. Upgrades from Composer XE to the Studio XE products are available.
0 Kudos
sumitm1
Beginner
2,789 Views
Steve,
I upgraded to version w_fcompxe_2011.8.278 and the code outlining feature still is working inconsistently. If there are certain rules around it, it would be good to know. Hope update 9 fixes it

Sumit
0 Kudos
Steven_L_Intel1
Employee
2,789 Views
Try it in Update 9 and let me know how it goes. If you can attach a source that has issues, we'll be glad to take a look at it.
0 Kudos
Reply