sil-quirk / sil-q

Other
210 stars 32 forks source link

Linking Issue on Arch-Linux #55

Closed mariari closed 3 years ago

mariari commented 3 years ago

It seems on Arch that running make -f Makefile.std install returns the following error

/usr/bin/ld: generate.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: dungeon.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: dungeon.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: init1.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: init1.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: init2.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: init2.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: randart.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: randart.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: use-obj.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: use-obj.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: automaton.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: automaton.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: main-cap.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: main-cap.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: main-gcu.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: main-gcu.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: main-x11.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: main-x11.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: maid-x11.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: maid-x11.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: main-gtk.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: main-gtk.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: main.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: multiple definition of `mini_screenshot_attr'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:53: first defined here
/usr/bin/ld: main.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: multiple definition of `mini_screenshot_char'; variable.o:/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/externs.h:52: first defined here
/usr/bin/ld: util.o: in function `path_temp':
/home/katya/holder/sil-q-release/sil-q-1.5.0-beta1b/src/util.c:234: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
collect2: error: ld returned 1 exit status
make: *** [Makefile.std:268: sil] Error 1

upon investigating the issue I found the same build error exists in sil

The solution was changing

char mini_screenshot_char[7][7];
byte mini_screenshot_attr[7][7];

to

extern char mini_screenshot_char[7][7];
extern byte mini_screenshot_attr[7][7];
sil-quirk commented 3 years ago

Odd it hasn't cropped up anywhere else. Will investigate.

aoeixsz4 commented 3 years ago

@sil-quirk it has cropped up elsewhere - I had the same problem and fixed it the same way. Running Arch-Linux too.

sil-quirk commented 3 years ago

Should be resolved by https://github.com/sil-quirk/sil-q/commit/92e6fb08c872315b9436a2053630ad9e825dcefa.