C++ and Headers/includes.

Started by
27 comments, last by Lempface 17 years, 10 months ago
you're not externing a class definition but a variable definition.

when you do something like:
struct MyStruct{};


you are defining a type which will act like: int, float, char, etc but with the extra functionality you define.

when you do this:
MyStruct foo;

you are declaring a variable (similar to typing: int foo;)

Variables can only be declared once. The compiler assumes that if you declare something twice you are actually desiring to have 2 different variables. As such it rightly decides that it cannot tell whether you want to use the first or the second variable when you say foo.doStuff(). So it barfs out and you have to fix it.

-me
Advertisement
Here let me repost my most current source in a .rar.

After externing all those class objects I get a BUNCH of linker errors.

Compiler: Default compiler
Building Makefile: "C:\Documents and Settings\Stephen\My Documents\Programming\BaBounce\Makefile.win"
Executing make clean
rm -f main.o init.o draw.o erase.o getinput.o ai.o move.o titlescreen.o shutdown.o global.o Ba-Bounce.exe

g++.exe -c main.cpp -o main.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c init.cpp -o init.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

init.cpp: In member function `void initClass::nextround()':
init.cpp:100: warning: `textprintf_centre' is deprecated (declared at D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include/allegro/alcompat.h:176)
init.cpp:101: warning: `textprintf_centre' is deprecated (declared at D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include/allegro/alcompat.h:176)
init.cpp:103: warning: `textprintf_centre' is deprecated (declared at D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include/allegro/alcompat.h:176)
init.cpp:105: warning: `textprintf_centre' is deprecated (declared at D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include/allegro/alcompat.h:176)

g++.exe -c draw.cpp -o draw.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c erase.cpp -o erase.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c getinput.cpp -o getinput.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c ai.cpp -o ai.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c move.cpp -o move.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c titlescreen.cpp -o titlescreen.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c shutdown.cpp -o shutdown.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe -c global.cpp -o global.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include"

g++.exe main.o init.o draw.o erase.o getinput.o ai.o move.o titlescreen.o shutdown.o global.o -o "Ba-Bounce.exe" -L"lib" -lalleg -lalpng

main.o(.text+0x9):main.cpp: undefined reference to `init'
main.o(.text+0x1a):main.cpp: undefined reference to `init'
main.o(.text+0x3b):main.cpp: undefined reference to `erase'
main.o(.text+0x4f):main.cpp: undefined reference to `erase'
main.o(.text+0x5b):main.cpp: undefined reference to `erase'
main.o(.text+0x6f):main.cpp: undefined reference to `motion'
main.o(.text+0x83):main.cpp: undefined reference to `motion'
main.o(.text+0x8f):main.cpp: undefined reference to `motion'
main.o(.text+0xa3):main.cpp: undefined reference to `draw'
main.o(.text+0xb7):main.cpp: undefined reference to `draw'
main.o(.text+0xc3):main.cpp: undefined reference to `draw'
main.o(.text+0xe2):main.cpp: undefined reference to `init'
main.o(.text+0xee):main.cpp: undefined reference to `draw'
init.o(.text+0x2ab):init.cpp: undefined reference to `erase'
init.o(.text+0x2bf):init.cpp: undefined reference to `erase'
init.o(.text+0x3c5):init.cpp: undefined reference to `draw'
init.o(.text+0x421):init.cpp: undefined reference to `draw'
init.o(.text+0x42d):init.cpp: undefined reference to `init'
erase.o(.text+0x20):erase.cpp: undefined reference to `draw'
erase.o(.text+0x4d):erase.cpp: undefined reference to `draw'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0xe7):alpng_filereader.c: undefined reference to `pack_fread'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x13d):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x155):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x161):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x16f):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x1a3):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x1af):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x1ed):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x209):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x215):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x234):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x24a):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x256):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x26f):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x289):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x301):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x322):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x347):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x380):alpng_filereader.c: undefined reference to `pack_igetl'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x388):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x398):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x3a8):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x3b6):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x3c6):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x3d6):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x400):alpng_filereader.c: undefined reference to `pack_fseek'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x488):alpng_filereader.c: undefined reference to `pack_fread'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x49c):alpng_filereader.c: undefined reference to `pack_igetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x4a4):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x4b4):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x4c4):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x4d2):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x4e2):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x4f2):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x5a3):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x5d0):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x5fb):alpng_filereader.c: undefined reference to `pack_getc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x7bc):alpng_filereader.c: undefined reference to `_color_load_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x808):alpng_filereader.c: undefined reference to `_fixup_loaded_bitmap'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x830):alpng_filereader.c: undefined reference to `generate_332_palette'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x852):alpng_filereader.c: undefined reference to `pack_fseek'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x862):alpng_filereader.c: undefined reference to `pack_igetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x86a):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x87a):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x88a):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x898):alpng_filereader.c: undefined reference to `pack_feof'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x8a4):alpng_filereader.c: undefined reference to `pack_ferror'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x8b0):alpng_filereader.c: undefined reference to `pack_mgetl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x96a):alpng_filereader.c: undefined reference to `select_palette'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x987):alpng_filereader.c: undefined reference to `_fixup_loaded_bitmap'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0x992):alpng_filereader.c: undefined reference to `unselect_palette'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0xacc):alpng_filereader.c: undefined reference to `pack_fopen'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_filereader.o)(.text+0xaeb):alpng_filereader.c: undefined reference to `pack_fclose'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_common.o)(.text+0x30):alpng_common.c: undefined reference to `register_bitmap_file_type'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_common.o)(.text+0x4e):alpng_common.c: undefined reference to `register_datafile_object'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x137):octree.c: undefined reference to `_imp___rgb_r_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x173):octree.c: undefined reference to `_imp___rgb_g_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x199):octree.c: undefined reference to `_imp___rgb_b_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x2a7):octree.c: undefined reference to `_imp___rgb_r_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x2af):octree.c: undefined reference to `_imp___rgb_scale_5'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x2d6):octree.c: undefined reference to `_imp___rgb_g_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x2de):octree.c: undefined reference to `_imp___rgb_scale_6'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x300):octree.c: undefined reference to `_imp___rgb_b_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x659):octree.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x79c):octree.c: undefined reference to `_imp___rgb_r_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x7d3):octree.c: undefined reference to `_imp___rgb_g_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x7fd):octree.c: undefined reference to `_imp___rgb_b_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x99f):octree.c: undefined reference to `_imp___rgb_r_shift_15'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x9a7):octree.c: undefined reference to `_imp___rgb_scale_5'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x9cb):octree.c: undefined reference to `_imp___rgb_g_shift_15'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x9ed):octree.c: undefined reference to `_imp___rgb_b_shift_15'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xb58):octree.c: undefined reference to `_imp___rgb_r_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xb94):octree.c: undefined reference to `_imp___rgb_g_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xbba):octree.c: undefined reference to `_imp___rgb_b_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xcc0):octree.c: undefined reference to `_imp___rgb_r_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xcf5):octree.c: undefined reference to `_imp___rgb_g_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xd1c):octree.c: undefined reference to `_imp___rgb_b_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xe25):octree.c: undefined reference to `_imp___rgb_r_shift_15'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xe2d):octree.c: undefined reference to `_imp___rgb_scale_5'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xe54):octree.c: undefined reference to `_imp___rgb_g_shift_15'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xe79):octree.c: undefined reference to `_imp___rgb_b_shift_15'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xf85):octree.c: undefined reference to `_imp___rgb_b_shift_15'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0xfc9):octree.c: undefined reference to `_imp___rgb_b_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x107f):octree.c: undefined reference to `_imp___rgb_r_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x1087):octree.c: undefined reference to `_imp___rgb_scale_5'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x10ae):octree.c: undefined reference to `_imp___rgb_g_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x10b6):octree.c: undefined reference to `_imp___rgb_scale_6'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x10d9):octree.c: undefined reference to `_imp___rgb_b_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(octree.o)(.text+0x118e):octree.c: undefined reference to `_imp___rgb_b_shift_16'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0xa8):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x118):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x14c):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x180):alpng_drawer.c: undefined reference to `_imp___rgb_a_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x1bb):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x206):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x26b):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x29f):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x2d3):alpng_drawer.c: undefined reference to `_imp___rgb_a_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x312):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x3b5):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x421):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_24'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x455):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x49d):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x52c):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x650):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x6bf):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_32'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x6f3):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x727):alpng_drawer.c: undefined reference to `_imp___rgb_a_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x762):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x7a0):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x806):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x83a):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x86e):alpng_drawer.c: undefined reference to `_imp___rgb_a_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x8ad):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x8ee):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x94f):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x983):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0x9ce):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0xa0b):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0xa7e):alpng_drawer.c: undefined reference to `_imp___rgb_g_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0xab2):alpng_drawer.c: undefined reference to `_imp___rgb_b_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0xafa):alpng_drawer.c: undefined reference to `_imp___rgb_r_shift_24'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_drawer.o)(.text+0xc74):alpng_drawer.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_interlacing.o)(.text+0x249):alpng_interlacing.c: undefined reference to `create_bitmap_ex'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x9f):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xc2):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xdc):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x166):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x1f1):alpng_save.c: undefined reference to `pack_mputl'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x27b):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x2d0):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x30c):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x335):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x35e):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x385):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x47d):alpng_save.c: undefined reference to `pack_mputl'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x497):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x520):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x551):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x5d0):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x615):alpng_save.c: undefined reference to `pack_iputw'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x677):alpng_save.c: undefined reference to `pack_iputw'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x6d7):alpng_save.c: undefined reference to `pack_fwrite'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x7c5):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x847):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x867):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x881):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x908):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x98f):alpng_save.c: undefined reference to `getr_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x9aa):alpng_save.c: undefined reference to `getg_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0x9c9):alpng_save.c: undefined reference to `getb_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xa25):alpng_save.c: undefined reference to `getr_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xa40):alpng_save.c: undefined reference to `getg_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xa5f):alpng_save.c: undefined reference to `getb_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xa7e):alpng_save.c: undefined reference to `geta_depth'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xabd):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xaf7):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xb11):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xbc0):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xbf3):alpng_save.c: undefined reference to `pack_putc'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xc36):alpng_save.c: undefined reference to `pack_putc'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xca5):alpng_save.c: undefined reference to `_imp___rgb_a_shift_32'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xcc0):alpng_save.c: undefined reference to `pack_putc'

D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xd1b):alpng_save.c: undefined reference to `pack_mputl'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xd9c):alpng_save.c: undefined reference to `pack_fopen'
D:/Programs/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../libalpng.a(alpng_save.o)(.text+0xdc2):alpng_save.c: undefined reference to `pack_fclose'
collect2: ld returned 1 exit status

make.exe: *** [Ba-Bounce.exe] Error 1

Execution terminated

FULL SOURCE

http://lempface.blogspot.com/Read about the RogueLike I'm Developing at my blog!
you don't need to extern the type definition, just the variable definition. That why I was saying you should get into the habit of doing things in this format:

struct MyStruct{...};extern MyStruct foo;


this is so that you can later do stuff like:
struct MyStruct{...};extern MyStruct foo;extern MyStruct bar;


that's nice and clean.

If you were to use the pattern you are currently using it would end up looking like this:
extern struct MyStruct{...} foo;extern MyStruct bar;


which is confusing. =)

-me
Awesome that worked, I'm still left with all the linker errors referring to allegroPNG library though. I'll have to look into this.
http://lempface.blogspot.com/Read about the RogueLike I'm Developing at my blog!
these are your code errors:
Quote:
main.o(.text+0x9):main.cpp: undefined reference to `init'
main.o(.text+0x1a):main.cpp: undefined reference to `init'
main.o(.text+0x3b):main.cpp: undefined reference to `erase'
main.o(.text+0x4f):main.cpp: undefined reference to `erase'
main.o(.text+0x5b):main.cpp: undefined reference to `erase'
main.o(.text+0x6f):main.cpp: undefined reference to `motion'
main.o(.text+0x83):main.cpp: undefined reference to `motion'
main.o(.text+0x8f):main.cpp: undefined reference to `motion'
main.o(.text+0xa3):main.cpp: undefined reference to `draw'
main.o(.text+0xb7):main.cpp: undefined reference to `draw'
main.o(.text+0xc3):main.cpp: undefined reference to `draw'
main.o(.text+0xe2):main.cpp: undefined reference to `init'
main.o(.text+0xee):main.cpp: undefined reference to `draw'
init.o(.text+0x2ab):init.cpp: undefined reference to `erase'
init.o(.text+0x2bf):init.cpp: undefined reference to `erase'
init.o(.text+0x3c5):init.cpp: undefined reference to `draw'
init.o(.text+0x421):init.cpp: undefined reference to `draw'
init.o(.text+0x42d):init.cpp: undefined reference to `init'
erase.o(.text+0x20):erase.cpp: undefined reference to `draw'
erase.o(.text+0x4d):erase.cpp: undefined reference to `draw'


the rest of the garbage means that you're not linking to the correct .lib files. Basically you're using some API so you need to fill in some box or other in DevC++ with the appropriate <fileName>.lib entry.

i'll take a look at your code in a sec to figure out your actual linker errors.

-me
Quote:Original post by Lempface
Awesome that worked, I'm still left with all the linker errors referring to allegroPNG library though. I'll have to look into this.


oh ok cool. So you just have the allegro linker errors?

-me
p.s. if you're still getting this:
Quote:
main.o(.text+0x9):main.cpp: undefined reference to `init'
main.o(.text+0x1a):main.cpp: undefined reference to `init'
main.o(.text+0x3b):main.cpp: undefined reference to `erase'
main.o(.text+0x4f):main.cpp: undefined reference to `erase'
main.o(.text+0x5b):main.cpp: undefined reference to `erase'
main.o(.text+0x6f):main.cpp: undefined reference to `motion'
main.o(.text+0x83):main.cpp: undefined reference to `motion'
main.o(.text+0x8f):main.cpp: undefined reference to `motion'
main.o(.text+0xa3):main.cpp: undefined reference to `draw'
main.o(.text+0xb7):main.cpp: undefined reference to `draw'
main.o(.text+0xc3):main.cpp: undefined reference to `draw'
main.o(.text+0xe2):main.cpp: undefined reference to `init'
main.o(.text+0xee):main.cpp: undefined reference to `draw'
init.o(.text+0x2ab):init.cpp: undefined reference to `erase'
init.o(.text+0x2bf):init.cpp: undefined reference to `erase'
init.o(.text+0x3c5):init.cpp: undefined reference to `draw'
init.o(.text+0x421):init.cpp: undefined reference to `draw'
init.o(.text+0x42d):init.cpp: undefined reference to `init'
erase.o(.text+0x20):erase.cpp: undefined reference to `draw'
erase.o(.text+0x4d):erase.cpp: undefined reference to `draw'


it's because you did:

struct MyStruct{...};extern MyStruct name;


but not this in the .cpp file
MyStruct name;


Think of extern as meaning: "someone else is going to define a variable that looks like this". As such, someone else actually needs to define that variable somewhere for the linker to be happy.

-me
Yea, and I fixed those too! Apparently you have to link -lalpng FIRST, and then link -lalleg. Not sure I understand why but that seems to have done it. The program crashes on launch now haha, but no more linker errors. Whew that was a pain. Thank you SO much for the help though, you've been wonderful.
http://lempface.blogspot.com/Read about the RogueLike I'm Developing at my blog!
Man, this is becomming frusterating after running the debugger I'm getting segmentation faults
http://lempface.blogspot.com/Read about the RogueLike I'm Developing at my blog!

This topic is closed to new replies.

Advertisement