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

compiling problem with for_main.o not found

intelmu
Beginner
1,761 Views
Hello,

i am desperate to resolve my problem for intel fortran 11.1/046,
I cant found any corresponding threads anywhere...

I am on an x86_64 Latitude laptop with opensuse 11.1.
for a simple A.f test program i get the answer:
ld: /opt/intel/Compiler/11.1/046/bin/intel64/lib/for_main.o: No such file: No such file or directory

i tried the following:
* source /opt/intel/Compiler/11.1/046/bin/ifortvars.sh intel64
* added in .bashrc:
export PATH=$PATH:/opt/intel/Compiler/11.1/046/bin/intel64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/Compiler/11.1/046/lib/intel64

i noted that in fact ifort is looking for this file in the wrong place ( in ../bin/intel64/lib whil it is in ../lib/intel64..).

Also, i had successfully installed the 11.0/081 ifort on this same laptop last january...

please, help me!
thank you ...




0 Kudos
6 Replies
Ron_Green
Moderator
1,761 Views
Quoting - intelmu
Hello,

i am desperate to resolve my problem for intel fortran 11.1/046,
I cant found any corresponding threads anywhere...

I am on an x86_64 Latitude laptop with opensuse 11.1.
for a simple A.f test program i get the answer:
ld: /opt/intel/Compiler/11.1/046/bin/intel64/lib/for_main.o: No such file: No such file or directory

i tried the following:
* source /opt/intel/Compiler/11.1/046/bin/ifortvars.sh intel64
* added in .bashrc:
export PATH=$PATH:/opt/intel/Compiler/11.1/046/bin/intel64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/Compiler/11.1/046/lib/intel64

i noted that in fact ifort is looking for this file in the wrong place ( in ../bin/intel64/lib whil it is in ../lib/intel64..).

Also, i had successfully installed the 11.0/081 ifort on this same laptop last january...

please, help me!
thank you ...





could we see the output of:

ifort -# A.f

and

echo $LD_LIBRARY_PATH

You can cut and paste the entire compilation from the -# case above.

I noticed that your export of LD_LIBRARY_PATH had the current path first and Intel fortran last. Reverse the order on the export. But even more simple, why don't you put the source .../ifortvars.sh intel64 into your .bashrc instead of the individual exports??

ron
0 Kudos
intelmu
Beginner
1,761 Views

could we see the output of:

ifort -# A.f

and

echo $LD_LIBRARY_PATH

You can cut and paste the entire compilation from the -# case above.

I noticed that your export of LD_LIBRARY_PATH had the current path first and Intel fortran last. Reverse the order on the export. But even more simple, why don't you put the source .../ifortvars.sh intel64 into your .bashrc instead of the individual exports??

ron

ifort -# A.f GIVES:
/opt/intel/Compiler/11.1/046/bin/intel64/./fortcom
-D__INTEL_COMPILER=1110
-D_MT
-D__ELF__
-D__INTEL_COMPILER_BUILD_DATE=20090630
-D__unix__
-D__unix
-D__linux__
-D__linux
-D__gnu_linux__
-Dunix
-Dlinux
-D__x86_64
-D__x86_64__
-mGLOB_pack_sort_init_list
-I.
-I/opt/intel/Compiler/11.1/046/bin/intel64/include
-I/usr/local/include
-I/usr/include
-I/usr/lib64/gcc/x86_64-suse-linux/4.3/include
-O2
-mP1OPT_version=11.1-intel64
-mGLOB_diag_file=/tmp/ifort77unNV.diag
-mGLOB_source_language=GLOB_SOURCE_LANGUAGE_F90
-mGLOB_tune_for_fort
-mGLOB_use_fort_dope_vector
-mP2OPT_static_promotion
-mP1OPT_print_version=FALSE
-mP3OPT_use_mspp_call_convention
-mCG_use_gas_got_workaround=F
-mP2OPT_align_option_used=TRUE
-mGLOB_options_string=-#
-mGLOB_cxx_limited_range=FALSE
-mGLOB_as_output_backup_file_name=/tmp/ifortLEkGwDas_.s
-mIPOPT_activate
-mIPOPT_lite
-mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2
-mGLOB_extended_instructions=0x8
-mP2OPT_subs_out_of_bound=FALSE
-mGLOB_ansi_alias
-mIPOPT_args_in_regs=0
-mPGOPTI_value_profile_use=T
-mP2OPT_hlo_level=2
-mP2OPT_hlo
-mIPOPT_obj_output_file_name=/tmp/ifort77unNV.o
-mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS
-mGLOB_obj_output_file=/tmp/ifort77unNV.o
-mGLOB_source_dialect=GLOB_SOURCE_DIALECT_FORTRAN
-mP1OPT_source_file_name=A.f
A.f

ld
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/crtbegin.o
--eh-frame-hdr
-dynamic-linker
/lib64/ld-linux-x86-64.so.2
-o
a.out
/opt/intel/Compiler/11.1/046/bin/intel64/lib/for_main.o
/tmp/ifort77unNV.o
-L/opt/intel/Compiler/11.1/046/bin/intel64/lib
-L/usr/lib64/gcc/x86_64-suse-linux/4.3
-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64
-L/lib/../lib64
-L/usr/lib/../lib64
-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/lib
-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../..
-L/lib64
-L/lib
-L/usr/lib64
-L/usr/lib
-Bstatic
-lifport
-lifcore
-limf
-lsvml
-Bdynamic
-lm
-Bstatic
-lipgo
-lirc
-u
__pthread_once
-Bdynamic
-lpthread
-lc
-lgcc_s
-lgcc
-Bstatic
-lirc_s
-Bdynamic
-ldl
-lc
/usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o

rm /tmp/ifortyX836dlibgcc

rm /tmp/ifortLJJQW4gnudirs

rm /tmp/iforttoTWDMgas

rm /tmp/ifortLEkGwDas_.s

rm /tmp/ifortzcDrpuldashv

rm /tmp/ifortvdhwjlarg

rm /tmp/ifortV7nEdcgnudirs

rm /tmp/ifort77unNV.o


----------------------------------------------------------------------------------------------------------

AND echo $LD_LIBRARY_PATH
/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64/:/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64

indeed it looks a bit redundant...
sorry i dont use this every day, should i rather write then:
export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/046/lib/intel64:$LD_LIBRARY_PATH
?

-----------------------
and then i copy-pasted the content of ifortvars.sh into my .bashrc:
when i source it it says:

ERROR: Unknown switch ''. Accepted values: ia32, intel64, ia64


and despite these changes in .bashrc, he's stil unhappy with for_main.o...


thank you for any further help...

muriel
0 Kudos
intelmu
Beginner
1,761 Views

could we see the output of:

ifort -# A.f

and

echo $LD_LIBRARY_PATH

You can cut and paste the entire compilation from the -# case above.

I noticed that your export of LD_LIBRARY_PATH had the current path first and Intel fortran last. Reverse the order on the export. But even more simple, why don't you put the source .../ifortvars.sh intel64 into your .bashrc instead of the individual exports??

ron

ifort -# A.f
/opt/intel/Compiler/11.1/046/bin/intel64/./fortcom
-D__INTEL_COMPILER=1110
-D_MT
-D__ELF__
-D__INTEL_COMPILER_BUILD_DATE=20090630
-D__unix__
-D__unix
-D__linux__
-D__linux
-D__gnu_linux__
-Dunix
-Dlinux
-D__x86_64
-D__x86_64__
-mGLOB_pack_sort_init_list
-I.
-I/opt/intel/Compiler/11.1/046/bin/intel64/include
-I/usr/local/include
-I/usr/include
-I/usr/lib64/gcc/x86_64-suse-linux/4.3/include
-O2
-mP1OPT_version=11.1-intel64
-mGLOB_diag_file=/tmp/ifort77unNV.diag
-mGLOB_source_language=GLOB_SOURCE_LANGUAGE_F90
-mGLOB_tune_for_fort
-mGLOB_use_fort_dope_vector
-mP2OPT_static_promotion
-mP1OPT_print_version=FALSE
-mP3OPT_use_mspp_call_convention
-mCG_use_gas_got_workaround=F
-mP2OPT_align_option_used=TRUE
-mGLOB_options_string=-#
-mGLOB_cxx_limited_range=FALSE
-mGLOB_as_output_backup_file_name=/tmp/ifortLEkGwDas_.s
-mIPOPT_activate
-mIPOPT_lite
-mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2
-mGLOB_extended_instructions=0x8
-mP2OPT_subs_out_of_bound=FALSE
-mGLOB_ansi_alias
-mIPOPT_args_in_regs=0
-mPGOPTI_value_profile_use=T
-mP2OPT_hlo_level=2
-mP2OPT_hlo
-mIPOPT_obj_output_file_name=/tmp/ifort77unNV.o
-mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS
-mGLOB_obj_output_file=/tmp/ifort77unNV.o
-mGLOB_source_dialect=GLOB_SOURCE_DIALECT_FORTRAN
-mP1OPT_source_file_name=A.f
A.f

ld
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/crtbegin.o
--eh-frame-hdr
-dynamic-linker
/lib64/ld-linux-x86-64.so.2
-o
a.out
/opt/intel/Compiler/11.1/046/bin/intel64/lib/for_main.o
/tmp/ifort77unNV.o
-L/opt/intel/Compiler/11.1/046/bin/intel64/lib
-L/usr/lib64/gcc/x86_64-suse-linux/4.3
-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64
-L/lib/../lib64
-L/usr/lib/../lib64
-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/lib
-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../..
-L/lib64
-L/lib
-L/usr/lib64
-L/usr/lib
-Bstatic
-lifport
-lifcore
-limf
-lsvml
-Bdynamic
-lm
-Bstatic
-lipgo
-lirc
-u
__pthread_once
-Bdynamic
-lpthread
-lc
-lgcc_s
-lgcc
-Bstatic
-lirc_s
-Bdynamic
-ldl
-lc
/usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o

rm /tmp/ifortyX836dlibgcc

rm /tmp/ifortLJJQW4gnudirs

rm /tmp/iforttoTWDMgas

rm /tmp/ifortLEkGwDas_.s

rm /tmp/ifortzcDrpuldashv

rm /tmp/ifortvdhwjlarg

rm /tmp/ifortV7nEdcgnudirs

rm /tmp/ifort77unNV.o

--------------------------------------------------------------------------------------------

AND
echo $LD_LIBRARY_PATH
/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64/:/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64:/opt/intel/Compiler/11.1/046/lib/intel64

a bit redundant, sorry i dont use these every day. should i rather write then:
export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/046/lib/intel64:$LD_LIBRARY_PATH
?

AND copy-pasting ifortvars_intel64.sh into .bashrc gives a whole bunch of declare comments,
starting by
declare -x ALSA_CONFIG_PATH="/etc/alsa-pulse.conf"
ending by
declare -x alias timidity="timidity -Oe"


but ifort remains unhappy with for_main.o...

thanks for any further help....


0 Kudos
Ron_Green
Moderator
1,761 Views
interesting. Tell me how you installed the compiler.

Did you install as root user?
Did you use the default installation options and default directories?
You didn't do the silent install did you?
You didn't cp the compiler from one directory to another did you?

For some reason the driver is confused about the installation directory, so it appears the installation went badly.

I would try uninstalling by:
/opt/intel/Compiler/11.1/046/bin/intel64/uninstall_cprof.sh

this leaves your license on the computer, so no worries there. Next become root and go through the installation again choosing the defaults. If it complains about missing prerequisites just ignore and continue with the installation.

ron

0 Kudos
intelmu
Beginner
1,761 Views
interesting. Tell me how you installed the compiler.

Did you install as root user?
yes

Did you use the default installation options and default directories?
yes. well i just moved the l_prof*.tar file in /opt, and it build the l_cprof_p_11.1.046_intel64
from where i ran ./install, and i already had the /opt/intel/Compiler directory set since the last installation (11.0).

You didn't do the silent install did you?
no

You didn't cp the compiler from one directory to another did you?
no

For some reason the driver is confused about the installation directory, so it appears the installation went badly.

I would try uninstalling by:
/opt/intel/Compiler/11.1/046/bin/intel64/uninstall_cprof.sh

ok i will reinstall -in ~2hours when i'm free again..Yet I cant think of many other ways than the way i did it (clicking on defaults all the time), but who knows. i will come back in all cases! and thank you...



0 Kudos
intelmu
Beginner
1,761 Views
Quoting - intelmu
So, i uninstalled and reinstalled,
set these lines in .bashrc:
export PATH=/opt/intel/Compiler/11.1/046/bin/intel64:$PATH
export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/046/lib/intel64/:$LD_LIBRARY_PATH
source /opt/intel/Compiler/11.1/046/bin/intel64/ifortvars_intel64.sh

and the problem remains:. for_main.o no such file.

BUT i found a solution!
I naively copied the entire content of /opt/intel/Compiler/11.1/046/lib/intel64
(53 files)
into a "lib" directory that i created in /opt/intel/Compiler/11.1/046/bin/intel64
since he's been looking for libraries there.

Its very crude, but it WORKS! my runs go ok!
Should I have rather built a dynamic link ( but i dont remember how to do this...) ?

well, there should be cleaner solution, i am curious to find how.. Hasnt anyone else had this problem really ?
Thank you for your presence in any case ( already 80% of the moral to find a solution!)

muriel




0 Kudos
Reply