The power to ignore duplicate characters?

I am creating some old code from projects that use static libraries. Now I have a lot of errors:

ld: warning: option -m is obsolete and being ignored
ld: duplicate symbol <function name>

Is there any way to force through assembly. From what I see, the “duplicate” functions are identical, it's just a build process that went away in passing. The project is really big (and a mess with inherited c and C ++ code), and I really want to avoid the waste investigating the build process. Is there a "quick fix"? I really only need to run this program once, so I can live with (some) stability issues.

+7
source share
2 answers

man ld ( "duplicate" ) :

   --traditional-format
       For some targets, the output of ld is different in some ways from
       the output of some existing linker.  This switch requests ld to use
       the traditional format instead.

       For example, on SunOS, ld combines duplicate entries in the symbol
       string table.  This can reduce the size of an output file with full
       debugging information by over 30 percent.  Unfortunately, the SunOS
       "dbx" program can not read the resulting program ("gdb" has no
       trouble).  The --traditional-format switch tells ld to not combine
       duplicate entries.

. , .

+1

GNU ld:

       --allow-multiple-definition
       -z muldefs
           Normally when a symbol is defined multiple times, the linker will
           report a fatal error. These options allow multiple definitions and
           the first definition will be used.
+1

All Articles