Allegro.cc - Online Community

Allegro.cc Forums » Installation, Setup & Configuration » Undefined reference errors Allegro 5

Credits go to Edgar Reynaldo for helping out!
This thread is locked; no one can reply to it. rss feed Print
Undefined reference errors Allegro 5
Bob Keane
Member #7,342
June 2006

I've been trying to compile a project using Allegro 5 but getting "undefined reference to __cxa_guard_acquire" and "undefined reference to __cxa_guard_release" errors. I am using the allegro binaries from here: https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/Allegro525_GCC81_MinGW_W64_i686_posix_dwarf.7z

and mingw gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)

using codeblocks. Any ideas?

By reading this sig, I, the reader, agree to render my soul to Bob Keane. I, the reader, understand this is a legally binding contract and freely render my soul.
If we get apple juice from squeezing apples, and we get prunes from drying out plums, where does prune juice come from?
Since gasoline contains ethanol, can self driving cars get duis?

Mark Oates
Member #1,146
March 2001
avatar

Bob Keane said:

Any ideas?

Hate to give the obvious danky allegro.cc answer but, don't use codeblocks. 🤷‍♂️

I'm actually curious, though, what features specifically do you like about CodeBlocks?

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

Codeblocks is great dude. Don't listen to him.

Which compiler did you download? Does it match the binaries? It looks like you have the right one.

Are you compiling as C++? Allegro is C++ on Windows.

Bob Keane
Member #7,342
June 2006

I've only tried one or two ides and settled with codeblocks. There is no specific reason I use it. The output from gcc -v is_

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/MINGW/i686-8.1.0-release-posix-dwarf-rt_v6-rev0/mingw32/bin/../libexec/gcc/i686-w64-mingw32/8.1.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-pkgversion='i686-posix-dwarf-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/lib -L/c/mingw810/prerequisites/i686-zlib-static/lib -L/c/mingw810/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)

I'm coding in C, is Allegro only C++ on Windows? That would limit its usability in my opinion. If the problem is the compiler, do you have a link to the correct one? There are several on the download page.

By reading this sig, I, the reader, agree to render my soul to Bob Keane. I, the reader, understand this is a legally binding contract and freely render my soul.
If we get apple juice from squeezing apples, and we get prunes from drying out plums, where does prune juice come from?
Since gasoline contains ethanol, can self driving cars get duis?

Edgar Reynaldo
Major Reynaldo
May 2007
avatar

You can code in C all you want, but on Windows you have to compile any Allegro program as C++ due to the D3D driver being C++. It's really not a problem.

Bob Keane
Member #7,342
June 2006

After playing with it a bit, I coded it in C++. The error is gone. Should I hate MINGW or Microsoft for forcing me to learn a new language?

By reading this sig, I, the reader, agree to render my soul to Bob Keane. I, the reader, understand this is a legally binding contract and freely render my soul.
If we get apple juice from squeezing apples, and we get prunes from drying out plums, where does prune juice come from?
Since gasoline contains ethanol, can self driving cars get duis?

DanielH
Member #934
January 2001
avatar

Don't need to learn a new language. Stick to C. Just compile in C++.

However, it never hurts to expand your knowledge.

Bob Keane
Member #7,342
June 2006

Unless it's my compiler, C++ seems stricter. I had a warning in some code when using the C compiler but it was an error for the C++ compiler.

DanielH said:

However, it never hurts to expand your knowledge.

You kids with your fancy new languages. What's wrong with BASIC?

By reading this sig, I, the reader, agree to render my soul to Bob Keane. I, the reader, understand this is a legally binding contract and freely render my soul.
If we get apple juice from squeezing apples, and we get prunes from drying out plums, where does prune juice come from?
Since gasoline contains ethanol, can self driving cars get duis?

Go to: