Re: icc C++ problems on Debian 2.4.27-1-686-smp
Al Stone wrote:
On Tue, 2004-11-23 at 13:02 +0000, michael wrote:
Folks - this is essentially a question of how to install Intel compilers
on a Debian box, something I would think is solved but...
Um, no, I doubt it is solved. AFAIK, Intel does not
officially support Debian.
[snip]
I have just installed 'testing' on my dual Xeon. I downloaded a suitable
SMP kernel from backports. Thus I have:
m@r:~/src/netcdf-3_6_0-beta6/src$ uname -a
Linux ratty 2.4.27-1-686-smp #1 SMP Fri Sep 3 06:34:36 UTC 2004 i686
GNU/Linux
I need to use the Intel compilers. (I should add that I've not had any
of the below problems when I installed the Intel C/C++ and Fortran
compilers on a RedHat box.) I followed Intel's instructions as per their
"Platform Notes: Using Intel C++ Compiler on Unsupported Operating
Systems". (This was essentially using 'alien' to convert rpm->deb, then
dpkg and then sed INSTALLDIR to the name of the actual install directory
for all .sh scripts)
Things looked fine. I compiled up 'mpich' and have used.
Personally, I haven't had much luck with the alien conversion
working properly. I don't think it's so much a problem with
alien as it is with the way the Intel installation scripts work.
I'm doing this from memory, so it may be not quite right, but
I've found the most reliable way of installing the Intel compilers
to be this:
-- 'apt-get install rpm' and then 'rpm -initdb' so that
rpm thinks it's behaving properly.
-- untar the Intel stuff.
-- fix install.sh. There's a test in the script (RPM_NOT_FOUND?)
that relies on 'rpm -qa' working in a way that is, um, highly
unlikely to work on Debian systems. If you run ./install.sh
it'll pop out a message about this being an unsupported install
that's pretty easy to find in the script. If you comment out
the test that causes that message to be displayed (it's in one
small shell function that I don't recall the name of), the
install will work just fine.
It seems that whenever I've done the install any other way, I've ended
up with the problems you note -- the compiler not being able to find
header files and such.
Hope this helps...
[much stuff snipped....]
Help!
Thanks, Michael, Atmospheric Physics Group, Univ of Manchester (UK)
Not sure if this is related but discovered this for gcc/g++ -- any ideas
what it means??
michael@ratty:/tmp$ cat sizes.cpp
#include <iostream>
using namespace std;
int main() {
cout << sizeof(char) << "\n";
cout << sizeof(int) << "\n";
cout << sizeof(float) << "\n";
cout << sizeof(double) << "\n";
}
michael@ratty:/tmp$ g++ sizes.cpp
michael@ratty:/tmp$ gcc sizes.cpp
/tmp/ccmtmIBv.o(.text+0x1b): In function `main':
: undefined reference to `std::cout'
/tmp/ccmtmIBv.o(.text+0x20): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >::operator<<(unsigned)'
/tmp/ccmtmIBv.o(.text+0x30): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >& std::operator<< <std::char_traits<char>
>(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccmtmIBv.o(.text+0x3f): In function `main':
: undefined reference to `std::cout'
/tmp/ccmtmIBv.o(.text+0x44): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >::operator<<(unsigned)'
/tmp/ccmtmIBv.o(.text+0x54): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >& std::operator<< <std::char_traits<char>
>(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccmtmIBv.o(.text+0x63): In function `main':
: undefined reference to `std::cout'
/tmp/ccmtmIBv.o(.text+0x68): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >::operator<<(unsigned)'
/tmp/ccmtmIBv.o(.text+0x78): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >& std::operator<< <std::char_traits<char>
>(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccmtmIBv.o(.text+0x87): In function `main':
: undefined reference to `std::cout'
/tmp/ccmtmIBv.o(.text+0x8c): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >::operator<<(unsigned)'
/tmp/ccmtmIBv.o(.text+0x9c): In function `main':
: undefined reference to `std::basic_ostream<char,
std::char_traits<char> >& std::operator<< <std::char_traits<char>
>(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccmtmIBv.o(.text+0xc5): In function
`__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/ccmtmIBv.o(.text+0xf6): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/ccmtmIBv.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status
michael@ratty:/tmp$
Reply to: