Solved

Problems with Compiling OWL App under BC++5.02

Posted on 1998-05-28
7
1,325 Views
Last Modified: 2013-12-26
I have a project for Windows 95 that won't compile.  I have tried everything.  My brother compiles my App just fine on his computer.  I get two different types of error messages.  First, I get a dialog that says "You have accidently used the Dummy version of OWLMain" or something like that.  Then if I do a complete rebuild, I get errors like so.

Info :Linking C:\WINDOWS\DESKTOP\ScanSave\OUTPUT\scansave.exe
Error:  Error: Unresolved external 'TScanSaveOptionsDlg::TScanSaveOptionsDlg(TWindow*,const char*,unsigned int,bool,unsigned long,TModule*)' referenced from C:\WINDOWS\DESKTOP\SCANSAVE\OUTPUT\SCANSAVEOPTIONSDIALOG.OBJ
Error:  Error: Unresolved external 'TImagingOptionsPage::TImagingOptionsPage(TPropertySheet*,TResId,const char*,TResId,TModule*)' referenced from C:\WINDOWS\DESKTOP\SCANSAVE\OUTPUT\SCANSAVEOPTIONSDIALOG.OBJ
Error:  Error: Unresolved external 'TDriveOptionsPage::TDriveOptionsPage(TPropertySheet*,TResId,const char*,TResId,TModule*)' referenced from C:\WINDOWS\DESKTOP\SCANSAVE\OUTPUT\SCANSAVEOPTIONSDIALOG.OBJ


I assure you I don't have dummy version of OWLMain, and I don't have unresolved externals.  Otherwise, how could my brother's computer possibly compile it?

I will award 300 points because I have been looking for the answer for 3 weeks, and it is likely that no one will get it.  But I have heard that other people had the same problem, but didn't remember how they got rid of it.

One more thing.  Just so everyone doesn't reply for nothing.  I have tried creating a new project, and adding files to it, and it still won't work.

Also note that when I backed up my project, it was working fine.  When I restored it after reinstalling my system, it stopped working.


--------------------------------------------------------
Makefile Generated by the IDE

#
# Borland C++ IDE generated makefile
# Generated 29/05/98 at 12:27:27 AM
#
.AUTODEPEND


#
# Borland C++ tools
#
IMPLIB  = Implib
BCC32   = Bcc32 +BccW32.cfg
BCC32I  = Bcc32i +BccW32.cfg
TLINK32 = TLink32
ILINK32 = Ilink32
TLIB    = TLib
BRC32   = Brc32
TASM32  = Tasm32
#
# IDE macros
#


#
# Options
#
IDE_LinkFLAGS32 =  -LC:\BC5\LIB
IDE_ResFLAGS32 =
LinkerLocalOptsAtW32_dbOUTPUTbscansavedexe =  -Tpe -aa -V4.0 -c -LC:\BC5\LIB
ResLocalOptsAtW32_dbOUTPUTbscansavedexe =
BLocalOptsAtW32_dbOUTPUTbscansavedexe =
CompInheritOptsAt_dbOUTPUTbscansavedexe = -IC:\BC5\INCLUDE; .\HEADERS -DSTRICT;_OWLPCH;
LinkerInheritOptsAt_dbOUTPUTbscansavedexe = -x
LinkerOptsAt_dbOUTPUTbscansavedexe = $(LinkerLocalOptsAtW32_dbOUTPUTbscansavedexe)
ResOptsAt_dbOUTPUTbscansavedexe = $(ResLocalOptsAtW32_dbOUTPUTbscansavedexe)
BOptsAt_dbOUTPUTbscansavedexe = $(BLocalOptsAtW32_dbOUTPUTbscansavedexe)

#
# Dependency List
#
Dep_ScanSave = \
   .\OUTPUT\scansave.exe

ScanSave : BccW32.cfg $(Dep_ScanSave)
  echo MakeNode

Dep_dbOUTPUTbscansavedexe = \
   headers\common.h\
   .\OUTPUT\diskcopy.obj\
   .\OUTPUT\scansaveoptionsdialog.obj\
   .\OUTPUT\scansave.obj\
   scansave.def\
   .\OUTPUT\scansave.res

.\OUTPUT\scansave.exe : $(Dep_dbOUTPUTbscansavedexe)
  $(ILINK32) @&&|
 /v $(IDE_LinkFLAGS32) $(LinkerOptsAt_dbOUTPUTbscansavedexe) $(LinkerInheritOptsAt_dbOUTPUTbscansavedexe) +
C:\BC5\LIB\c0w32.obj+
.\OUTPUT\diskcopy.obj+
.\OUTPUT\scansaveoptionsdialog.obj+
.\OUTPUT\scansave.obj
$<,$*
C:\BC5\LIB\owlwf.lib+
C:\BC5\LIB\bidsf.lib+
C:\BC5\LIB\ctl3d32.lib+
C:\BC5\LIB\import32.lib+
C:\BC5\LIB\cw32.lib
scansave.def
.\OUTPUT\scansave.res

|
.\OUTPUT\diskcopy.obj :  diskcopy.cpp
  $(BCC32) -c @&&|
 $(CompOptsAt_dbOUTPUTbscansavedexe) $(CompInheritOptsAt_dbOUTPUTbscansavedexe) -o$@ diskcopy.cpp
|

Dep_dbOUTPUTbscansaveoptionsdialogdobj = \
   headers\scansaveoptionsdialog.h\
   scansaveoptionsdialog.cpp

.\OUTPUT\scansaveoptionsdialog.obj : $(Dep_dbOUTPUTbscansaveoptionsdialogdobj)
  $(BCC32) -c @&&|
 $(CompOptsAt_dbOUTPUTbscansavedexe) $(CompInheritOptsAt_dbOUTPUTbscansavedexe) -o$@ scansaveoptionsdialog.cpp
|

Dep_dbOUTPUTbscansavedobj = \
   headers\scansave.h\
   scansave.cpp

.\OUTPUT\scansave.obj : $(Dep_dbOUTPUTbscansavedobj)
  $(BCC32) -c @&&|
 $(CompOptsAt_dbOUTPUTbscansavedexe) $(CompInheritOptsAt_dbOUTPUTbscansavedexe) -o$@ scansave.cpp
|

.\OUTPUT\scansave.res :  scansave.rc
  $(BRC32) -R @&&|
 $(IDE_ResFLAGS32) $(ROptsAt_dbOUTPUTbscansavedexe) $(CompInheritOptsAt_dbOUTPUTbscansavedexe)  -FO$@ scansave.rc
|
# Compiler configuration file
BccW32.cfg :
   Copy &&|
-w
-R
-v
-WM-
-vi
-H
-H=ScanSave.csm
-W
-H"owl\pch.h"
| $@
0
Comment
Question by:tadams
  • 4
  • 3
7 Comments
 
LVL 3

Expert Comment

by:JPM
ID: 1299683
If it compiles fine on your brother 's computer :
You should compare the settings of BC++ in your computer with  your brother computer 's settings.
The same for the IDE projects
( toggle the Show RunTime nodes in  Properties\Environment options )

May I suggest you give more information about your project options

By the way, I point out a long file name : scansaveoptionsdialog      Is it the only one ?
0
 
LVL 1

Author Comment

by:tadams
ID: 1299684
These are the runtime nodes that are included with the project.  Since the project cannot be any different than on my brothers computer, there is no need to check with him.  After all, I already copied all the files from him, and am using them to try the compile.  Also, I have reinstalled my BC++, and so did he.  So by default, we should have exactly the same files/settings.

If you still think I should check with him, then let me know.
c0w32.obj
owlwf.lib
bidsf.lib
ctl3d32.lib
import32.lib
cw32.lib

I have changed my question.  Please look at it again, and there should be some extra text containing a make file I generated from my IDE project.  This will have all the same settings.  I also add another comment just before the makefile.
0
 
LVL 1

Author Comment

by:tadams
ID: 1299685
Edited text of question
0
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 
LVL 1

Author Comment

by:tadams
ID: 1299686
To JPM.  I found the answer, and it has something to do with your comment.  If you can tell me what it is, I will award you your 300 points!  Until you respond, no one will get any points, so take your time.

Hint: Most people would not have this problem, nor is it a BC++ problem.

I had a similar problem before, but I had forgotten.
0
 
LVL 3

Accepted Solution

by:
JPM earned 300 total points
ID: 1299687
I guess when you display the run-time nodes you can see the Borland OBJ and Borland LIB you need   for example : Cow32.obj  owlwfi.lib .........
....and one ( or more ) was missing to get your program compiling fine.

Even it's not the good answer, i'm very glad you are not stucked anymore!!!
it's very frustating  wasting so long time with  ( sometimes!) very insignificant stuff.

JPM

0
 
LVL 3

Expert Comment

by:JPM
ID: 1299688
Two possibilities :

1   -   Long file names not supported         ( option ? )
    ( you said it's not a BC++ problem )


2 -              ( pretty usual )
I guess when you display the run-time nodes you can see the Borland OBJ and Borland LIB you need   for example : Cow32.obj  owlwfi.lib .........
....and one ( or more ) was missing to get your program compiling fine.


Even it's not the good answer, i'm very glad you are not stucked anymore!!!
it's very frustating  wasting so long time with  ( sometimes!) very insignificant stuff.

JPM

0
 
LVL 1

Author Comment

by:tadams
ID: 1299689
You were right on your comment.  It is a Long filename problem.  I have my Windows machine set so that long filenames take the form  (first 8 characters of filename followed by extension) instead of (first 6 characters followed by ~x where x is 1-9).

I had the main cpp file as scansave.cpp, and another as ScanSaveOptionsDlg.cpp.  This caused the Scansave.obj to be overwritten with ScanSaveOptionsDlg.obj.  Hence both long filenames produce an object file with a dos filename of scansave.obj.
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SAMI File <SYNC Start = (number of millisecond)> Question 3 73
Problem to picture file 3 74
.php tree directory? 5 74
Create animated movies for web page 18 48
Preface This is the third article about the EE Collaborative Login Project. A Better Website Login System (http://www.experts-exchange.com/A_2902.html) introduces the Login System and shows how to implement a login page. The EE Collaborative Logi…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question