|
Archives
D Programming
D
D.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
|
c++ - link error with /co
↑ ↓ ← → Michael <Michael_member pathlink.com> writes:
I reduce it to the simplest one, but the problem remains.
//test_debug.cpp
#include <cstdio>
int main()
{
printf("Hello world\n");
return 1;
}
//-------------------------------
The file is in "E:\C++\DMwork\Test"
E:\C++\DMwork\Test>dmc -C -g test_debug
the output is:
link test_debug,,,user32+kernel32/co/noi;
OPTLINK : Error 118: Filename Expected
Path=...
--- errorlevel 1
by the way, the compiler is installed in "E:\DigitalMars" version 8.45, and if
I'd like to debug with windbg, is dmc compatible with it?
↑ ↓ ← → Scott Michel <scottm aero.org> writes:
As far as I can tell (and I've used Windbag (windbg as it's
affectionately known to the MS developers), DMC's debug info is compatible.
Michael wrote:
I reduce it to the simplest one, but the problem remains.
//test_debug.cpp
#include <cstdio>
int main()
{
printf("Hello world\n");
return 1;
}
//-------------------------------
The file is in "E:\C++\DMwork\Test"
E:\C++\DMwork\Test>dmc -C -g test_debug
the output is:
link test_debug,,,user32+kernel32/co/noi;
OPTLINK : Error 118: Filename Expected
Path=...
--- errorlevel 1
by the way, the compiler is installed in "E:\DigitalMars" version 8.45, and if
I'd like to debug with windbg, is dmc compatible with it?
↑ ↓ ← → Michael <Michael_member pathlink.com> writes:
In article <dg4g94$24is$1 digitaldaemon.com>, Scott Michel says...
As far as I can tell (and I've used Windbag (windbg as it's
affectionately known to the MS developers), DMC's debug info is compatible.
source level debug, and it seems that dmc always put debug info together with
the exe file.(though I can't even do it now) Would you please tell me how to
manage it?
↑ ↓ ← → Scott Michel <scottm aero.org> writes:
Michael wrote:
In article <dg4g94$24is$1 digitaldaemon.com>, Scott Michel says...
As far as I can tell (and I've used Windbag (windbg as it's
affectionately known to the MS developers), DMC's debug info is compatible.
Thanks Scott. But as far as I know, windbg needs symbol files(*.pdb) to do
source level debug, and it seems that dmc always put debug info together with
the exe file.(though I can't even do it now) Would you please tell me how to
manage it?
Not necessarily. You don't actually need a pdb file to debug a program.
In fact, windbg works just fine reading CV symbol information from the
executable (/CO/DE flags to the DMC linker.)
The pdb file exists to keep debug info separate from the executable,
making the MS linker's job "easier" during incremental links.
↑ ↓ ← → Michael <Michael_member pathlink.com> writes:
In article <dg7s14$2i1j$1 digitaldaemon.com>, Scott Michel says...
Not necessarily. You don't actually need a pdb file to debug a program.
In fact, windbg works just fine reading CV symbol information from the
executable (/CO/DE flags to the DMC linker.)
The pdb file exists to keep debug info separate from the executable,
making the MS linker's job "easier" during incremental links.
Thanks, it's really a good news to me. However, what annoys me is that I can't
build the programme whenever passing switch /CO to the linker. More specifically
dmc -C -g -L/CO/DE aaa.cpp
it returns:
link aaa,,,user32+kernel32/co/noi/CO/DE;
OPTLINK : Error 118: filename expected
path=...
But, if I drop "-g" and "/CO", it builds well without debug info.
↑ ↓ ← → "Walter Bright" <newshound digitalmars.com> writes:
"Michael" <Michael_member pathlink.com> wrote in message
news:dgc1ur$1b9j$1 digitaldaemon.com...
Thanks, it's really a good news to me. However, what annoys me is that I
build the programme whenever passing switch /CO to the linker. More
dmc -C -g -L/CO/DE aaa.cpp
it returns:
link aaa,,,user32+kernel32/co/noi/CO/DE;
OPTLINK : Error 118: filename expected
path=...
But, if I drop "-g" and "/CO", it builds well without debug info.
When I try it, it works:
-------------------------------------------------
C:\cbx>dmc -C -g -L/CO/DE test.cpp
link test,,,user32+kernel32/co/noi/CO/DE;
C:\cbx>
----------------------------------------------
However, you don't need the -C or the -L/CO/DE switches. Just -g will do
fine.
The file is in "E:\C++\DMwork\Test"
The linker doesn't work well if it encounters "+" in a filename. Try
renaming the directory from "C++" to "CPP".
↑ ↓ ← → Michael <Michael_member pathlink.com> writes:
In article <dgcqdh$26ii$1 digitaldaemon.com>, Walter Bright says...
When I try it, it works:
-------------------------------------------------
C:\cbx>dmc -C -g -L/CO/DE test.cpp
link test,,,user32+kernel32/co/noi/CO/DE;
C:\cbx>
----------------------------------------------
However, you don't need the -C or the -L/CO/DE switches. Just -g will do
fine.
The file is in "E:\C++\DMwork\Test"
The linker doesn't work well if it encounters "+" in a filename. Try
renaming the directory from "C++" to "CPP".
and try "dmc -g test_debug.cpp", however the problem remains. I wonder if the
linker can work well when there are some paths containing "+" in the enviroment
"PATH" or the linker supports long filenames such as "E:\DigitalMars". Because
it can be compiled successfully with "-g", but not linked.
↑ ↓ ← → "Walter Bright" <newshound digitalmars.com> writes:
"Michael" <Michael_member pathlink.com> wrote in message
news:dgeosj$1206$1 digitaldaemon.com...
I copy the file "test_debug.cpp" to "E:\DigitalMars\" in which dmc is
and try "dmc -g test_debug.cpp", however the problem remains. I wonder if
linker can work well when there are some paths containing "+" in the
"PATH" or the linker supports long filenames such as "E:\DigitalMars".
it can be compiled successfully with "-g", but not linked.
The linker does support long filenames. But the '+' in the PATH needs to go.
↑ ↓ ← → Michael <Michael_member pathlink.com> writes:
In article <dgf0j1$19hi$1 digitaldaemon.com>, Walter Bright says...
The linker does support long filenames. But the '+' in the PATH needs to go.
|
|