|
Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript electronics |
c++ - 8.49 link trouble from IDDE
Sorry to post here, but the idde group is sort of silent. I have observed a
small but annoying issue when linking programs from w/in the 8.49 idde.
This occurs when using the stlport includes. I have not tested it any
other way.
Specifically, UNLESS the libpath c:\dm\lib is explicitly set in the project
settings in Library Directories, the link cannot complete and reports
the error:
link /NOI /DE /E /PACKF /XN /NT /ENTRY:mainCRTStartup /BAS:4194304 /A:512
hello.LNK
Warning: C:\tmp\KERNEL32.LIB (12361600): File Not Found KERNEL32.LIB
Warning: C:\tmp\GDI32.LIB (65568): File Not Found GDI32.LIB
Warning: C:\tmp\USER32.LIB (65568): File Not Found USER32.LIB
Warning: C:\tmp\stlp45dm.lib (3459476): File Not Found stlp45dm.lib
Warning: C:\tmp\SNN.lib (12620356): File Not Found SNN.lib
Error: No Match Found for Export/ENTRY - : mainCRTStartup
Error: C:\tmp\hello.OBJ(hello) (3459468): Symbol Undefined __acrtused_con
Error: C:\tmp\hello.OBJ(hello) (31): Symbol Undefined ?sbumpc ?
$basic_streambuf std DV?$char_traits std D 1 std QAEHXZ
Error: C:\tmp\hello.OBJ(hello) (7451597): Symbol Undefined ?
rdstate ios_base std QBEHXZ (int syscall std::ios_base::rdstate(void )
const )
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ?
_M_clear_nothrow ios_base std IAEXH Z (void syscall
std::ios_base::_M_clear_nothrow(int ))
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ?
_M_check_exception_mask ios_base std IAEXXZ (void syscall
std::ios_base::_M_check_exception_mask(void ))
Error: C:\tmp\hello.OBJ(hello) (8972012): Symbol Undefined ?
good ios_base std QBE_NXZ
Error: C:\tmp\hello.OBJ(hello) (1): Symbol Undefined ?pubsync ?
$basic_streambuf std DV?$char_traits std D 1 std QAEHXZ
Error: C:\tmp\hello.OBJ(hello) (1): Symbol Undefined ?to_int_type ?
$char_traits std D std SAHABD Z (int cdecl
std::D::d::char_traits<>::to_int_type(char const &))
Error: C:\tmp\hello.OBJ(hello) (6825758): Symbol Undefined ??3 YAXPAX Z
(void cdecl delete(void *))
Error: C:\tmp\hello.OBJ(hello) (3553698): Symbol Undefined ??
1ios_base std UAE XZ (syscall std::ios_base::~ios_base(void ))
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ?
flags ios_base std QBEHXZ (int syscall std::ios_base::flags(void )const )
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ?length ?
$char_traits std D std SAIPBD Z (unsigned cdecl
std::D::d::char_traits<>::length(char const *))
Error: C:\tmp\hello.OBJ(hello) (3459400): Symbol Undefined ?
width ios_base std QBEHXZ (int syscall std::ios_base::width(void )const )
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ?sputn ?
$basic_streambuf std DV?$char_traits std D 1 std QAEHPBDH Z
Error: C:\tmp\hello.OBJ(hello) (3459408): Symbol Undefined ?_M_sputnc ?
$basic_streambuf std DV?$char_traits std D 1 std QAEHDH Z
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ?
width ios_base std QAEHH Z (int syscall std::ios_base::width(int ))
Error: C:\tmp\hello.OBJ(hello) (8972012): Symbol Undefined __fatexit
Error: C:\tmp\hello.OBJ(hello) (1826572): Symbol Undefined ??
0Init ios_base std QAE XZ (syscall std::ios_base::Init::Init(void ))
Error: C:\tmp\hello.OBJ(hello) : Symbol Undefined ??
0_Loc_init ios_base std QAE XZ (syscall std::ios_base::_Loc_init::_Loc_init
(void ))
Error: C:\tmp\hello.OBJ(hello) (3459392): Symbol Undefined ??
1_Loc_init ios_base std QAE XZ (syscall std::ios_base::_Loc_init::~_Loc_init
(void ))
Error: C:\tmp\hello.OBJ(hello) (7942676): Symbol Undefined ??
1Init ios_base std QAE XZ (syscall std::ios_base::Init::~Init(void ))
Error: C:\tmp\hello.OBJ(hello) (11342776): Symbol Undefined ?cin std 3V?
$basic_istream std DV?$char_traits std D 1 1 A
Error: C:\tmp\hello.OBJ(hello) (11342776): Symbol Undefined ?cout std 3V?
$basic_ostream std DV?$char_traits std D 1 1 A
Errors: 24 Warnings: 5
Build failed
HOWEVER, when I add c:\dm\lib to the Library Directories, the link completes
with no errors:
link /NOI /DE /E /PACKF /XN /NT /ENTRY:mainCRTStartup /BAS:4194304 /A:512
hello.LNK
ren .\$SCW$.EXE hello.EXE
Errors: 0 Warnings: 0
Successful build
Now, looking at the Makefile, you will see the only difference between
success and failure. The first block was when I tested debug WITH
the libpath set. The second was with RELEASE and no path set. The
error occurs only when c:\dm\lib is absent before KERNEL32....It has
nothing to do with DEBUG or RELEASE. I can reverse it and repeat
the error.
# this block links
hello.OBJ
$$SCW$$.EXE
NUL
c:\dm\lib\ KERNEL32.LIB GDI32.LIB USER32.LIB
hello.DEF;
<<
# this block does NOT link
!ELSE
.OBJ.EXE:
$(LNK) $(LFLAGS) $(PROJ).LNK<<
hello.OBJ
$$SCW$$.EXE
NUL
KERNEL32.LIB GDI32.LIB USER32.LIB
hello.DEF;
<<
Now, from the command line, dmc ...hello.cpp works fine with no error.
I can only guess the problem is somewhere w/in the IDDE.
Here is sc.ini
[Version]
version=7.51 Build 020
[Environment]
PATH=%PATH%;% P%
BIN=% P%
INCLUDE=% P%\..\stlport\stlport;% P%\..\include;% P%\..\mfc\include;%INCLUDE%
LIB=% P%\..\lib;% P%\..\mfc\lib;%LIB%
HELP=% P%\..\help
To me, it seems to be redundant and unnecessary to have to
manually add the library path to each project! Is this a problem
with the IDDE? A bug possibly?
I use wine, but have been able to duplicate the problem exactly on
XP as well.
--
Peter
Feb 19 2007
On Mon, 19 Feb 2007 11:29:16 +0000, Peter wrote:Sorry to post here, but the idde group is sort of silent. I have observed a small but annoying issue when linking programs from w/in the 8.49 idde. This occurs when using the stlport includes. I have not tested it any other way. Feb 19 2007
Is DMC in the default location on your hard disk? Does it work if you set the LIB environment variable to point to where the library files are? Feb 19 2007
On Mon, 19 Feb 2007 12:29:06 -0800, Walter Bright wrote:Is DMC in the default location on your hard disk? Feb 19 2007
Peter wrote:On Mon, 19 Feb 2007 12:29:06 -0800, Walter Bright wrote:Is DMC in the default location on your hard disk? Feb 20 2007
Peter wrote:Problem persists. Feb 20 2007
Peter wrote:On Tue, 20 Feb 2007 02:56:52 -0800, Walter Bright wrote:Peter wrote:Problem persists. Feb 20 2007
On Tue, 20 Feb 2007 01:14:17 -0800, Walter Bright wrote:Peter wrote:On Mon, 19 Feb 2007 12:29:06 -0800, Walter Bright wrote:Is DMC in the default location on your hard disk? Feb 20 2007
On Tue, 20 Feb 2007 02:56:52 -0800, Walter Bright wrote:Peter wrote:Problem persists. Feb 20 2007
On Tue, 20 Feb 2007 02:56:52 -0800, Walter Bright wrote:Peter wrote:Problem persists. Feb 20 2007
|