# G++ Shared Library Issues

## Main Question or Discussion Point

Before I switched to Opensuse 12.3, I was running Arch, and doing something like:
Code:
g++ -o test -I ./include/ -L ./lib/ -ltcod -ltcodxx ./src/main.cpp
with no problems occuring.

Now, when I try to do that (with everything kept the exact same as when on Arch), I get:
Code:
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: skipping incompatible lib/libtcod.so when searching for -ltcod
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -ltcod
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: skipping incompatible lib/libtcodxx.so when searching for -ltcodxx
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -ltcodxx
I also tried including -Wl,-rpath=./lib/ , but it still made no difference.

Any help as to why the libraries have become incompatible all of a sudden would be greatly appreciated.

Related Programming and Computer Science News on Phys.org
Also, is there the possibility of an issue of static vs dynamic libraries? I seem to remember a problem along those lines when. at the office, I got switched from Red Hat 4 to Red Hat 5.

I guess.

By the way, the error message posted does not quite say that the library was not found, it says that what was found is not compatible...whatever that means...different compiler? different size (32 vs 64)? different something? Sorry, I am no expert on these matters.

harborsparrow
Gold Member
The term "shared libraries" may refer to libraries that are either static OR dynamic. Static libraries are compiled right into your executable, whereas dynamic libraries are linked at runtime.