Angelscript/angelscript/projects/gnuc/FAQ

74 lines
2.3 KiB
Plaintext
Raw Permalink Normal View History

2021-04-12 18:25:02 +00:00
** (UN)FREQUENTLY ASKED QUESTIONS **
1. Why do you have to specify PREFIX= even when building
when overriding the default ?
2. When overriding the default prefix, how do you compile
and link my program ?
--
1. Why do you have to specify PREFIX= even when building,
when overriding the default ?
Because it allows easier linking. The way the Linux
link loader works, if the library name has a slash in it,
then it resolves it that way. If it doesn't it goes through
a series of steps which tries to find it. However, without
updating a certain file it won't find it under '/usr/local'
(and similar with '/tmp'). Therefore, as long as you have
the same PREFIX= (or don't specify it at all), all you need
to do to link to the shared version is link to it (and any
other dependencies; -lpthread comes to mind here). For
example the link options might be :
-langelscript_s -lpthread
--
2. When overriding the default prefix, how do you compile
and link my program ?
An example scenario is the following :
You installed into /opt which means the following
files should exist :
/opt/include/angelscript.h
/opt/lib/libangelscript.so (which is a symbolic link to
the current version installed)
/opt/lib/libangelscript.a (the static library).
If you #include angelscript.h you might normally
have :
#include <angelscript.h>
However, when that file is not in the standard directories
the compiler searches, you have to either use :
#include "/opt/include/angelscript.h"
(method one)
or alternatively keep the include (using the angle brackets)
but pass the include path (or paths actually but in this case
path) to the compiler so it knows to search an additional
location. If you're using g++ then the following option
will work (it also works for gcc but I am assuming you
are using C++) :
-I/opt/include
You must however still link. You therefore must pass another
option to the compiler (which will pass it to the linker)
and the option os -L which is used like so (to follow the
scenario) :
-L/opt/lib
The rest is the same.
CONTACT INFO:
If you have any questions or concerns, by all
means have Andreas contact me (at this time I
don't have an email I feel okay sharing - if it
seems this is of use to others I will likely
create an email on my server for this very
purpose). For now Andreas can forward the
message to me.