1. yambone635

    OP yambone635 Newbie
    Newcomer

    Joined:
    Sep 7, 2020
    Messages:
    4
    Country:
    United States
    Hi all,

    I decided recently to dip my feet into homebrew programming, and I thought a good place to start would be to modify some existing projects. I compiled and modified several of the example projects that come with devkitPro with no problems, so I decided to add some features to the 3DS Tetris clone FBWO. (I'm a new member, so I can't make hyperlinks yet, but googling FBWO 3DS should pull it up.)

    And then the nightmare began...

    I have tried just about everything my limited imagination could dream up to get this dang thing to compile. I have tried compiling, linking, and modifying the project and its dependencies in every way I could think of, including attempting to compile it in WSL instead of windows, but I have had zero progress. It always just throws a ton of "Multiple Definition" and "Undefined Reference" errors.

    My current theory (for what that's worth) is that:

    1) There is a circular dependency lurking somewhere (but that means the author uploaded broken code - surely they wouldn't do that?!)
    2) For some infuriating reason, the make file is busted and isn't linking Citro3D properly (and yep, you guessed it - I have tried and failed to fix it the make file too)

    Here's an example of the output I'm getting. Fair warning, it's long.

    > make
    linking fbwo.elf
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:17: multiple definition of `music'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:17: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:16: multiple definition of `music_loaded'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:16: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:15: multiple definition of `last_buf_seq'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:15: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:14: multiple definition of `last_half'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:14: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:13: multiple definition of `runThread'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:13: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:11: multiple definition of `threadRequest'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:11: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:10: multiple definition of `threadHandle'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:10: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:17: multiple definition of `music'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:17: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:16: multiple definition of `music_loaded'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:16: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:15: multiple definition of `last_buf_seq'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:15: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:14: multiple definition of `last_half'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:14: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:13: multiple definition of `runThread'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:13: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:11: multiple definition of `threadRequest'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:11: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:10: multiple definition of `threadHandle'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/audio.h:10: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:96: multiple definition of `ARS_rotation_I'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:96: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:95: multiple definition of `ARS_rotations'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:95: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:92: multiple definition of `rotation_I'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:92: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:91: multiple definition of `rotations'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:91: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:87: multiple definition of `rotation_offsets'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:87: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:85: multiple definition of `full_lines'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:85: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:45: multiple definition of `indicator'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:45: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:43: multiple definition of `back_to_back_flag_old'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:43: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:42: multiple definition of `last_T_kick'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:42: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:41: multiple definition of `last_T_rotation'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:41: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:40: multiple definition of `ARE_state'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:40: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:39: multiple definition of `hold_last'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:39: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:38: multiple definition of `gameover'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:38: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:37: multiple definition of `level'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:37: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:36: multiple definition of `next_counter'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:36: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:35: multiple definition of `render_line_clear'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:35: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:34: multiple definition of `back_to_back_flag'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:34: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:32: multiple definition of `ARE_frames'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:32: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:31: multiple definition of `high_score'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:31: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:30: multiple definition of `total_lines'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:30: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:29: multiple definition of `gravity_frame_counter'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:29: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:28: multiple definition of `score'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:28: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:27: multiple definition of `ticks_before_glue'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:27: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:24: multiple definition of `next_blocks'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:24: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:23: multiple definition of `last_deployed'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:23: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:22: multiple definition of `hold'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:22: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:21: multiple definition of `in_play'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:21: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:7: multiple definition of `level_grid'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:7: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:133: multiple definition of `indicator_frame_config'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:133: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:132: multiple definition of `indicator_frames'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:132: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:130: multiple definition of `indicatory'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:130: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:129: multiple definition of `indicatorx'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:129: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:127: multiple definition of `digit_offset_levely'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:127: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:126: multiple definition of `digit_offset_linesy'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:126: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:124: multiple definition of `remove_line_count'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:124: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:122: multiple definition of `block_offset_nexty'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:122: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:121: multiple definition of `block_offset_nextx'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:121: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:119: multiple definition of `block_offset_holdy'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:119: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:118: multiple definition of `block_offset_holdx'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:118: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:116: multiple definition of `backtoback_indicator'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:116: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:115: multiple definition of `tspintriple_indicator'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:115: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:114: multiple definition of `tspindouble_indicator'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:114: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:113: multiple definition of `tspinsingle_indicator'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:113: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:112: multiple definition of `tspin_indicator'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:112: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:111: multiple definition of `tetris_indicator'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:111: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:109: multiple definition of `paused_text'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:109: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:108: multiple definition of `gameover_text'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:108: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:107: multiple definition of `misc_num'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:107: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:106: multiple definition of `score_num'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:106: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:105: multiple definition of `blocks'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:105: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:104: multiple definition of `tetriminos'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:104: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:102: multiple definition of `hold_frame'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:102: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:101: multiple definition of `level_frame'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:101: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:100: multiple definition of `lines_frame'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:100: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:99: multiple definition of `hiscore_text'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:99: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:98: multiple definition of `score_text'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:98: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:97: multiple definition of `grid'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:97: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:96: multiple definition of `next_frame'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:96: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:95: multiple definition of `next_text'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:95: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:94: multiple definition of `background'; main.o:/mnt/c/Projects/Programming/3DS/fbwo/source/graphics.h:94: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:96: multiple definition of `ARS_rotation_I'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:96: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:95: multiple definition of `ARS_rotations'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:95: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:92: multiple definition of `rotation_I'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:92: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:91: multiple definition of `rotations'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:91: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:87: multiple definition of `rotation_offsets'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:87: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:85: multiple definition of `full_lines'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:85: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:45: multiple definition of `indicator'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:45: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:43: multiple definition of `back_to_back_flag_old'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:43: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:42: multiple definition of `last_T_kick'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:42: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:41: multiple definition of `last_T_rotation'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:41: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:40: multiple definition of `ARE_state'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:40: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:39: multiple definition of `hold_last'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:39: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:38: multiple definition of `gameover'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:38: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:37: multiple definition of `level'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:37: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:36: multiple definition of `next_counter'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:36: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:35: multiple definition of `render_line_clear'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:35: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:34: multiple definition of `back_to_back_flag'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:34: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:32: multiple definition of `ARE_frames'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:32: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:31: multiple definition of `high_score'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:31: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:30: multiple definition of `total_lines'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:30: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:29: multiple definition of `gravity_frame_counter'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:29: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:28: multiple definition of `score'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:28: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:27: multiple definition of `ticks_before_glue'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:27: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:24: multiple definition of `next_blocks'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:24: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:23: multiple definition of `last_deployed'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:23: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:22: multiple definition of `hold'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:22: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:21: multiple definition of `in_play'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:21: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: graphics.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:7: multiple definition of `level_grid'; level.o:/mnt/c/Projects/Programming/3DS/fbwo/source/level.h:7: first defined here
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: audio.o: in function `audio_init':
    /mnt/c/Projects/Programming/3DS/fbwo/source/audio.c:60: undefined reference to `aptOpenSession'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/Projects/Programming/3DS/fbwo/source/audio.c:62: undefined reference to `aptCloseSession'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/Projects/Programming/3DS/fbwo/source/lib/libtremor.a(info.o): in function `tagcompare':
    /home/spaqin/3ds/lpp-3ds_libraries/source/info.c:54: undefined reference to `__ctype_ptr__'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: main.o: in function `main':
    /mnt/c/Projects/Programming/3DS/fbwo/source/main.c:378: undefined reference to `parse_config'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/Projects/Programming/3DS/fbwo/source/main.c:412: undefined reference to `tetris_control'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/devkitPro/libctru/lib/libsfil.a(sfil_png.o): in function `_sfil_read_png_file_fn':
    C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:11: undefined reference to `png_get_io_ptr'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/devkitPro/libctru/lib/libsfil.a(sfil_png.o): in function `_sfil_load_PNG_generic':
    C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:24: undefined reference to `png_create_read_struct'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:29: undefined reference to `png_create_info_struct'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:37: undefined reference to `png_destroy_read_struct'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:43: undefined reference to `png_set_read_fn'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:44: undefined reference to `png_set_sig_bytes'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:45: undefined reference to `png_read_info'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:50: undefined reference to `png_get_IHDR'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:55: undefined reference to `png_get_valid'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:75: undefined reference to `png_set_palette_to_rgb'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:76: undefined reference to `png_set_filler'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:79: undefined reference to `png_get_valid'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:83: undefined reference to `png_set_packing'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:85: undefined reference to `png_read_update_info'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:102: undefined reference to `png_read_image'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:104: undefined reference to `png_destroy_read_struct'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:57: undefined reference to `png_set_expand'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:61: undefined reference to `png_set_scale_16'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:113: undefined reference to `png_destroy_info_struct'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:115: undefined reference to `png_destroy_read_struct'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:64: undefined reference to `png_set_filler'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:67: undefined reference to `png_set_gray_to_rgb'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:68: undefined reference to `png_set_filler'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:80: undefined reference to `png_set_tRNS_to_alpha'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:70: undefined reference to `png_set_gray_to_rgb'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/devkitPro/libctru/lib/libsfil.a(sfil_png.o): in function `sfil_load_PNG_file':
    C:\Users\parko\Desktop\sfillib-master\libsfil\build/C:/Users/parko/Desktop/sfillib-master/libsfil/source/sfil_png.c:134: undefined reference to `png_sig_cmp'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/devkitPro/libctru/lib/libsf2d.a(sf2d_draw.o): in function `sf2d_setup_env_internal':
    C:\Users\parko\Desktop\sf2dlib-master\libsf2d\build/C:/Users/parko/Desktop/sf2dlib-master/libsf2d/source/sf2d_draw.c:11: undefined reference to `C3D_TexEnvOp'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/devkitPro/libctru/lib/libsf2d.a(sf2d_texture.o): in function `sf2d_clear_target':
    C:\Users\parko\Desktop\sf2dlib-master\libsf2d\build/C:/Users/parko/Desktop/sf2dlib-master/libsf2d/source/sf2d_texture.c:81: undefined reference to `C3D_RenderTargetSetClear'
    /opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/ld: /mnt/c/devkitPro/libctru/lib/libsf2d.a(sf2d_texture.o): in function `sf2d_bind_texture':
    C:\Users\parko\Desktop\sf2dlib-master\libsf2d\build/C:/Users/parko/Desktop/sf2dlib-master/libsf2d/source/sf2d_texture.c:147: undefined reference to `C3D_TexEnvOp'
    collect2: error: ld returned 1 exit status
    make[1]: *** [/opt/devkitpro/devkitARM/3ds_rules:42: /mnt/c/Projects/Programming/3DS/fbwo/fbwo.elf] Error 1
    make: *** [Makefile:131: build] Error 2
    >

    I don't normally use forums, especially to ask for help, since I hate feeling like I'm wasting other people's time on my problems. Usually I just assume that if I suffer with the problem long enough I'll work something out. This time, though, I'm unusually desperate - I wasted a whole day on this, and I just KNOW it's something simple. So, any help at all would be hugely appreciated. Thanks in advance.
     
  2. Joom

    Joom  ❤❤❤
    Member

    Joined:
    Jan 8, 2016
    Messages:
    5,988
    Country:
    United States
    Under WSL, try installing 3ds-libpng. Did you also install the 3ds-dev package when setting up the build environment?
     
  3. yambone635

    OP yambone635 Newbie
    Newcomer

    Joined:
    Sep 7, 2020
    Messages:
    4
    Country:
    United States
    Yeah, I did - and just to make sure, I reinstalled it and tried again. Still no luck, unfortunately. Although I forgot to mention that the errors seem to be coming from libsf2d, which isn't supported anymore - so maybe it isn't compatible with citra3d anymore? I have no idea how to fix that though. It's used all over the code, so I can't just remove it.
     
  4. Joom

    Joom  ❤❤❤
    Member

    Joined:
    Jan 8, 2016
    Messages:
    5,988
    Country:
    United States
    Possibly so. I'm going to setup an environment soon anyway, so I may pull this and toy with it.
     
  5. yambone635

    OP yambone635 Newbie
    Newcomer

    Joined:
    Sep 7, 2020
    Messages:
    4
    Country:
    United States
    Thank you. I'll try some more ideas in the meantime. If I find anything I'll edit this post.
     
  6. Joom

    Joom  ❤❤❤
    Member

    Joined:
    Jan 8, 2016
    Messages:
    5,988
    Country:
    United States
    Well, I wanted to see if I could get anywhere, but sf2dlib is the roadblock. I can't get it to compile at all. I even found a fork that's a bit more ahead than the original repo, but it still doesn't like this latest version of devkitPro.
     
  7. yambone635

    OP yambone635 Newbie
    Newcomer

    Joined:
    Sep 7, 2020
    Messages:
    4
    Country:
    United States
    Makes sense. I was going to try and remove this library anyway since it's not being maintained - I was just hoping I could get it compiling first so I'd know if I screwed something up. Oh well. Thank you for trying, I really appreciate it.
     
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - Definition, Compiling, Undefined