This is the mail archive of the
cygwin
mailing list for the Cygwin project.
GCC --enable-auto-import problem
- From: Huang Bambo <bambo dot huang at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Fri, 5 Jun 2009 09:02:34 +0800
- Subject: GCC --enable-auto-import problem
- References: <f4d6f44b0906040220x43a62dddr33e784821d02471f@mail.gmail.com>
In cygwin 1.7:
1. download db-4.7.25 from oracle at
http://www.oracle.com/database/berkeley-db/index.html (havn't tested
on other version)
2. configure like : ../dist/configure --prefix=/home/Bambo/db-for-1.7
--enable-cxx --enable-pthread_api
3. make, it will take you a few minutes
4. write a program like :
#include <db_cxx.h>
int main( void )
{
? ? ? ?Db db( NULL, 0 );
? ? ? ?return 0;
}
5.compile like :g++ -o t test.cpp -L/home/Bambo/db-for-1.7/lib
-ldb_cxx -I/home/Bambo/db-for-1.7/include
will compile and link ok with information:
Info: resolving typeinfo for std::exception by linking to
__imp___ZTISt9exception (auto-import)
/usr/lib/gcc/i686-pc-cygwin/4.3.2/../../../../i686-pc-cygwin/bin/ld:
warning: auto-importing has been activated without
--enable-auto-import specified on the command line.
This should work unless it involves constant data structures
referencing symbols from auto-imported DLLs.
and the file t.exe can't run, direct run in windows command shell will
report "can't load" with error code 0x00000005.
( use:"ldd t.exe" to find dlls used by the file will hung ldd)
6.compile like:g++ -o t test.cpp -L/home/Bambo/db-for-1.7/lib -ldb_cxx
-I/home/Bambo/db-for-1.7/include -Wl,--enable-auto-import
Then everything goes fine.
ldd t.exe will report:
$ ldd t.exe
? ? ? ?ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c920000)
? ? ? ?kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
? ? ? ?cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
? ? ? ?ADVAPI32.DLL => /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL (0x77da0000)
? ? ? ?RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll (0x77e50000)
? ? ? ?Secur32.dll => /cygdrive/c/WINDOWS/system32/Secur32.dll (0x77fc0000)
? ? ? ?cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x67f00000)
? ? ? ?cygstdc++-6.dll => /usr/bin/cygstdc++-6.dll (0x6c480000)
Who can tell me why??? Everything goes fine under cygwin 1.5 with
gcc3(gcc4 not tested), even
without "-Wl,--enable-auto-import"
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/