initial commit
This commit is contained in:
73
angelscript/projects/gnuc/FAQ
Normal file
73
angelscript/projects/gnuc/FAQ
Normal file
@@ -0,0 +1,73 @@
|
||||
** (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.
|
Reference in New Issue
Block a user