Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
July 31, 2003 I am stuck :( | ||||
---|---|---|---|---|
| ||||
Hi all, I am fairly new to DMC and C++, and I a experiencing problems trying to compile a simple hello.cpp program from \dm\stlport\hello.cpp I followed the intructions from the readme.txt to build the stlport libaries and dlls, xcopied them as per instructions and am able to compile from command line ok. I am running WinXP ( so not sure if this is a problem or not ? ) I start the SCW32mn.exe and get the IDDE up and running. I then create a new dos project and add the hello.cpp file Try to build it and get this error sc hello.cpp -ms -C -S -3 -a2 -c -gf -ohello.obj Fatal Error: O:\DM_FILES\hello.cpp(1): unable to open input file 'iostream' Lines Processed: 1 Errors: 1 Warnings: 0 Build failed Hmm a bit odd really, since I have included ..\stlport\stlport in the sc.ini file in the include path Any help appreciated Yeric |
August 01, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yeric | "Yeric" <REMOVEamigabloke@yahoo.co.ukREMOVE> wrote in message news:bgc8tn$2180$1@digitaldaemon.com... | I start the SCW32mn.exe and get the IDDE up and running. Why are you using SCW32mn.exe? I haven't used this version of the IDDE, I use SCW32.exe and it runs fine on XP |
August 01, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Greg Peet | Sorry sent my message too soon...coffee makes you hit keyboard shortcuts before needed... You say that you successfully built stlport so, hmm. Are you including "C:\dm\stlport\stlport" before the normal include? Like: INCLUDE="C:\dm\stlport\stlport";"%@P%\..\include";"%@P%\..\mfc\include";"%@P %\..\stl";%INCLUDE% I had some trouble with the environmental variables version of the STLPort path (but I didn't give it much time, I was hasty). I have this setup and it works for me. "Greg Peet" <admin@gregpeet.com> wrote in message news:bgccum$24vg$1@digitaldaemon.com... | "Yeric" <REMOVEamigabloke@yahoo.co.ukREMOVE> wrote in message | news:bgc8tn$2180$1@digitaldaemon.com... | | I start the SCW32mn.exe and get the IDDE up and running. | Why are you using SCW32mn.exe? I haven't used this version of the IDDE, I | use SCW32.exe and it runs fine on XP | | |
August 01, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yeric | Yeric wrote: > Hi all, > I am fairly new to DMC and C++, and I a experiencing problems trying to > compile a simple hello.cpp program from \dm\stlport\hello.cpp > > I am running WinXP ( so not sure if this is a problem or not ? ) No should not be a problem. > I start the SCW32mn.exe and get the IDDE up and running. With SCW32MN.EXE you are able to start the idde more than once. Might be handy when working on more than one project at the same time > I then create a new dos project and add the hello.cpp file This is the problem I guess. You should not create a 'dos' project but a 'Windows NT console'. In the project window use the ARROW KEYS to select the target type. Also take a good look at sc.ini in the compiler bin drectory and make sure the settings are correct. Arjan |
August 01, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Greg Peet | Greg Peet wrote: > Sorry sent my message too soon...coffee makes you hit keyboard shortcuts before needed... I know that feeling <g> > > You say that you successfully built stlport so, hmm. Are you including "C:\dm\stlport\stlport" before the normal include? Well I am including this in the sc.ini file exactly as per readme > > Like: > INCLUDE="C:\dm\stlport\stlport";"%@P%\..\include";"%@P%\..\mfc\include";"%@P > %\..\stl";%INCLUDE% > > I had some trouble with the environmental variables version of the STLPort path (but I didn't give it much time, I was hasty). I have this setup and it works for me. I am now using the SCW32 also now but it still doesn't work :( I copied the dll and .lib files to the \dm\lib dir, the only thing I ave not done yet is reboted my machine, should I need to ?? I am going to play a bit more with it, for the moment the command line will suffice, but hopefully soon the IDDE will be most useful Thanks Yeric |
August 01, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Arjan Knepper | > This is the problem I guess. You should not create a 'dos' project but a 'Windows NT console'. In the project window use the ARROW KEYS to select the target type. Ok done this and when it loads the project I get this Parsing ..\dm\stlport\hello.cpp Warning: O:\dm\stlport\stlport\config\stl_apple.h(33): Encountered preprocessor #error directive Warning: O:\dm\stlport\stlport\config\stl_apple.h(41): Encountered preprocessor #error directive Warning: O:\dm\stlport\stlport\cstddef(35): Invalid include file name: _STLP_NATIVE_C_HEADER(stddef.h) Warning: O:\dm\stlport\stlport\cwchar(49): Invalid include file name: _STLP_NATIVE_C_HEADER(wchar.h) Warning: O:\dm\stlport\stlport\cstring(27): Invalid include file name: _STLP_NATIVE_C_HEADER(string.h) Warning: O:\dm\stlport\stlport\exception(49): Invalid include file name: _STLP_NATIVE_CPP_RUNTIME_HEADER(Exception.h) Warning: O:\dm\stlport\stlport\cstdlib(27): Invalid include file name: _STLP_NATIVE_C_HEADER(stdlib.h) Warning: O:\dm\stlport\stlport\stdarg.h(23): Invalid include file name: _STLP_NATIVE_C_HEADER(stdarg.h) Warning: O:\dm\stlport\stlport\ctype.h(23): Invalid include file name: _STLP_NATIVE_C_HEADER(ctype.h) Warning: O:\dm\stlport\stlport\string.h(24): Invalid include file name: _STLP_NATIVE_C_HEADER(string.h) Warning: O:\dm\stlport\stlport\stdlib.h(23): Invalid include file name: _STLP_NATIVE_C_HEADER(stdlib.h) Warning: O:\dm\stlport\stlport\new.h(31): Invalid include file name: _STLP_NATIVE_CPP_RUNTIME_HEADER(new.h) Warning: O:\dm\stlport\stlport\cstdio(31): Invalid include file name: _STLP_NATIVE_C_HEADER(stdio.h) Warning: O:\dm\stlport\stlport\cfloat(29): Invalid include file name: _STLP_NATIVE_C_HEADER(float.h) Warning: O:\DM\STLPORT\hello.cpp(3): Semicolon expected Parse Completed No errors :) but then I try and build and get this sc ..\DM\STLPORT\hello.cpp -mn -o+time -WA -3 -a8 -c -o..\DM\STLPORT\hello.obj link /NOI /DE /E /PACKF /XN /NT /ENTRY:WinMainCRTStartup /BAS:4194304 /A:512 @Hello.LNK Error: O:\DM\BIN\..\lib\SNN.lib(winstart) (1): Symbol Undefined _WinMain@16 Lines Processed: 16348 Errors: 1 Warnings: 0 Build failed > > Also take a good look at sc.ini in the compiler bin drectory and make sure the settings are correct. And here is my sc.ini file [Version] version=7.51 Build 020 [Environment] PATH=%PATH%;"%@P%\..\bin" BIN="%@P%\..\bin" INCLUDE="%@P%\..\stlport\stlport";"%@P%\..\include";"%@P%\..\mfc\include";"% @P%\..\stl";%INCLUDE% LIB="%@P%\..\lib";"%@P%\..\mfc\lib";%LIB% HELP="%@P%\..\help" And the source file #include <iostream> using namespace std ; int main( void ) { cout << "Hello world!" << endl ; } Well for many hours now I have been battling with this one If I change the <iostream> and append .h it works fine !! This denotes a problem somewhere with my stlport configuration or does it ?since dmc hello -I\dm\stlport\stlport \dm\lib\stlp45dms.lib -D_DLL works fine no errors If I use sc instead of dmc I get this *** Unrecognized Command *** DESCRIPTION: SC is a command line program used for communicating with the NT Service Controller and services. USAGE: sc <server> [command] [service name] <option1> <option2>... The option <server> has the form "\\ServerName" Further help on commands can be obtained by typing: "sc [command]" Commands: query-----------Queries the status for a service, or enumerates the status for types of services. queryex---------Queries the extended status for a service, or enumerates the status for types of services. start-----------Starts a service. pause-----------Sends a PAUSE control request to a service. interrogate-----Sends an INTERROGATE control request to a service. continue--------Sends a CONTINUE control request to a service. stop------------Sends a STOP request to a service. config----------Changes the configuration of a service (persistant). description-----Changes the description of a service. failure---------Changes the actions taken by a service upon failure. qc--------------Queries the configuration information for a service. qdescription----Queries the description for a service. qfailure--------Queries the actions taken by a service upon failure. delete----------Deletes a service (from the registry). create----------Creates a service. (adds it to the registry). control---------Sends a control to a service. sdshow----------Displays a service's security descriptor. sdset-----------Sets a service's security descriptor. GetDisplayName--Gets the DisplayName for a service. GetKeyName------Gets the ServiceKeyName for a service. EnumDepend------Enumerates Service Dependencies. The following commands don't require a service name: sc <server> <command> <option> boot------------(ok | bad) Indicates whether the last boot should be saved as the last-known-good boot configuration Lock------------Locks the Service Database QueryLock-------Queries the LockStatus for the SCManager Database EXAMPLE: sc start MyService Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]: QUERY and QUERYEX OPTIONS : If the query command is followed by a service name, the status for that service is returned. Further options do not apply in this case. If the query command is followed by nothing or one of the options listed below, the services are enumerated. type= Type of services to enumerate (driver, service, all) (default = service) state= State of services to enumerate (inactive, all) (default = active) bufsize= The size (in bytes) of the enumeration buffer (default = 4096) ri= The resume index number at which to begin the enumeration (default = 0) group= Service group to enumerate (default = all groups) SYNTAX EXAMPLES sc query - Enumerates status for active services & drivers sc query messenger - Displays status for the messenger service sc queryex messenger - Displays extended status for the messenger service sc query type= driver - Enumerates only active drivers sc query type= service - Enumerates only Win32 services sc query state= all - Enumerates all services & drivers sc query bufsize= 50 - Enumerates with a 50 byte buffer. sc query ri= 14 - Enumerates with resume index = 14 sc queryex group= "" - Enumerates active services not in a group sc query type= service type= interact - Enumerates all interactive services sc query type= driver group= NDIS - Enumerates all NDIS drivers Now I am totaly confused stuck and frustrating What have I done wrong ??? Start SCW32 Project->new Hello.prj > Win NT Add hello.cpp file moans about some HELLO_DEF not added add anyway, I click no but it adds it anyway Makes no difference if it is in the project or not same compile error build generates this file all the time new.h the contents of /* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */ #if __SC__ || __RCC__ #pragma once #endif #ifndef __NEW_H #define __NEW_H 1 /* Define _CRTAPI1 (for compatibility with the NT SDK) */ #ifndef _CRTAPI1 #define _CRTAPI1 __cdecl #endif /* Define _CRTAPI2 (for compatibility with the NT SDK) */ #ifndef _CRTAPI2 #define _CRTAPI2 __cdecl #endif /* Define CRTIMP */ #ifndef _CRTIMP #if defined(_WIN32) && defined(_DLL) #define _CRTIMP __declspec(dllimport) #else #define _CRTIMP #endif #endif extern "C++" { #if !defined(__NEW_DEFINED) #define __NEW_DEFINED 1 void *operator new(unsigned, void *p); #if _ENABLE_ARRAYNEW void *operator new[](unsigned, void *p); #endif #endif typedef int (__cdecl * _PNH)( unsigned ); //for Microsoft compatibility typedef void (* PFVV)(); //as defined in ARM _PNH __cdecl _set_new_handler(_PNH); //for Microsoft compatibility PFVV set_new_handler(PFVV); //as defined in ARM } #endif Is there some other .ini file I need to be poking at ?? Any help appreciated Please Yeric |
August 01, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yeric | Ok I gave up in the end !! Deleted Path from environemt Deleted dm Xcopied from CD again Built stlport again!! copied to \dm\lib *.lib and *.dll opened project created an empty WIN NT console app used <iostream> and using namespace std ; et voilla it compiled without a qualm how odd is this ?? the only thing it moans about is when I reopen the project and it parses the files, it gives loads of warnings about the stlport .h files, but will still compile ok :) However this I do not understand at all dmc hello -I\dm\stlport\stlport \dm\lib\stlp45dms.lib -D_DLL = 34kb run from command line so I decided to do a bit of experimenting and edited the sc.ini file, lib path and preceeded the first entry with this \..\lib\stlp45dms.lib -D_DLL thinking that this might have something to do with the .exe size but it doesn't, actually it increases the size by a few kb. So I try building it as a dos exe, and dos com but they fail on the build something to do with the stlport libraries. So can anyone tell me why there is such a difference in size between the command line compiled version and the IDDE version please ? Does anyone know a way to other than setting optimizations for space or size, how to reduce exe size Ilya Minkov in one of my previous posts suggested this from the command line dmc hello.cpp -Nc -6 -o but how to pass such arguments to IDDE ??? The make file somewhere ??? Thanks in advance for your patience and help on this Yeric |
August 02, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Yeric | Yeric wrote: > However this I do not understand at all > > dmc hello -I\dm\stlport\stlport \dm\lib\stlp45dms.lib -D_DLL = 34kb > run from command line > > so I decided to do a bit of experimenting and edited the sc.ini file, lib > path and preceeded the first entry with this > > \..\lib\stlp45dms.lib -D_DLL > > thinking that this might have something to do with the .exe size but it > doesn't, actually it increases the size by a few kb. Adding static libs or import libs to link against should be done in the IDDE: right click the project -> click 'settings...' -> click on the 'directories' tab. At 'Library Directories' add the direcory path for the libs you want to use seperate them with ; Click OK right click the project -> click 'Edit Project...' type the lib name and extension in the 'file name' edit control click on 'Add'. repeat for all libs you want to add to the project, don;t forget to click on OK. > So I try building it as a dos exe, and dos com but they fail on the build > something to do with the stlport libraries. > > So can anyone tell me why there is such a difference in size between the > command line compiled version and the IDDE version please ? You use different comilation options?? > Does anyone know a way to other than setting optimizations for space or > size, how to reduce exe size > > Ilya Minkov in one of my previous posts suggested this from the command line > > dmc hello.cpp -Nc -6 -o > > but how to pass such arguments to IDDE ??? The make file somewhere ??? -Nc is function level link: right click project -> 'Settings...' -> 'Build' tab -> 'Compiler -> Code Generation' -6 is not supported in the idde, but you mat set this in the sc.ini file Modify the CFLAGS and/or CFLAG= entry add -6 Arjan |
August 02, 2003 Re: I am stuck :( | ||||
---|---|---|---|---|
| ||||
Posted in reply to Arjan Knepper | > Adding static libs or import libs to link against should be done in the > IDDE: right click the project -> click 'settings...' -> click on the > 'directories' tab. At 'Library Directories' add the direcory path for > the libs you want to use seperate them with ; > Click OK > right click the project -> click 'Edit Project...' type the lib name and > extension in the 'file name' edit control click on 'Add'. > repeat for all libs you want to add to the project, don;t forget to > click on OK. > Ok thanks for the tips :) I am still in the middle of reading the IDDE help files > > You use different comilation options?? Yes they are very different more options with the IDDE and none with the command line. > >>> -Nc is function level link: > right click project -> 'Settings...' -> 'Build' tab -> 'Compiler -> Code Generation' > > -6 is not supported in the idde, but you mat set this in the sc.ini file > Modify the CFLAGS and/or CFLAG= entry add -6 > thank you again for your tips I am not used to using and ide yet, everything I have done in the past has been with GCC via mingw32 comand line and basic make file Thanks Yeric |
Copyright © 1999-2021 by the D Language Foundation