Subj : Re: problems with command line linker To : borland.public.cpp.borlandcpp From : Ed Mulroy [TeamB] Date : Wed Jun 01 2005 06:52 pm A public symbol which is supplied in one of the object files but which is duplicated in the library will generate a duplicate symbol warning but not an error - EXCEPT if there is an unresolved external reference (a public symbol which is being used/called by which has not been found) in the same library object file which contains the duplicate symbol. It has been too long. I think a /d (or -d) option is the one that tells tlink.exe to generate warnings about duplicate public symbols. Try removing that option from the tlink command line. Delete the object file that is giving the fixup overflow error and rebuild it. Make sure the machine has plenty of memory as that could be caused by running low on memory. With appropriate substitutions of your target and object file names this make file might build the program. See if it does the build any better than what you are using. Assuming that it is saved as the file name MyMake.mak then a command line to use it would be: make -f mymake.mak (the space after the -f and the extension .mak are optional) ---------------------------- ..autodepend LIBS=mylib1 mylib2 emu cl OBJS=file1.obj file2.obj file3.obj target.exe : $(OBJS) tlink /Tde/v/c c0l $(OBJS),target,,$(LIBS) ..c.obj : bcc -c -v -ml { $< } ..cpp.obj : bcc -c -v -ml { $< } ---------------------------- .. Ed > JackRosenbloom wrote in message > news:429e1291$1@newsgroups.borland.com... > Hello, > > I am using borland C++, version 4.52. I have a 16 bit dos application > which builds and runs fine using the IDE. I'm using the large memory > model and linking to a library I wrote also built under the IDE (different > project file), also large memory model. > > I want to build this application using the command line tools ( bcc.exe > and Tlink). When I do this, the compile works fine but I get two types of > linker errors which don't occur when building the application under the > IDE > > ERROR 1 > defined in module control.cpp is duplicated in module > sim_8904.cpp > > I do have some duplicate names. There are some routines in the library > which the application is re-defining. No problem for the IDE. > > ERROR 2 > Error: Fixup overflow at OPI_MAIN_TEXT:03F3, target = > __urc_global_ocs_data in library file c:\urc\kernel23\bc_lib\runonpc.lib > in module opi_main > > The symbol __urc_global_ocs_data is defined public in one module and > extern in numerous files included in the library. I verified I'm > compiling large by adding this to one application file > > #if !defined __LARGE__ > #error WRONG MODEL > #endif > The file compiles without error > > Do you have any idea what is wrong? .