[英]AngelScript G++ Linker error
我正在嘗試在 64 位 Linux 機器(Linux Mint 14)上使用 AngelScript。 我已經安裝了 AngelScript sdk 自帶的 gnuc 項目,並嘗試使用以下命令進行編譯:
g++ -fno-strict-aliasing main.cpp -langelscript
這會導致以下鏈接器錯誤:
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadManager::asCThreadManager()':
as_thread.cpp:(.text+0x12a): undefined reference to `pthread_key_create'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadManager::~asCThreadManager()':
as_thread.cpp:(.text+0x381): undefined reference to `pthread_key_delete'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadManager::CleanupLocalData()':
as_thread.cpp:(.text+0x453): undefined reference to `pthread_getspecific'
as_thread.cpp:(.text+0x4b8): undefined reference to `pthread_setspecific'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadManager::GetLocalData()':
as_thread.cpp:(.text+0x4f7): undefined reference to `pthread_getspecific'
as_thread.cpp:(.text+0x557): undefined reference to `pthread_setspecific'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadCriticalSection::TryEnter()':
as_thread.cpp:(.text+0x6a0): undefined reference to `pthread_mutex_trylock'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadReadWriteLock::asCThreadReadWriteLock()':
as_thread.cpp:(.text+0x6c5): undefined reference to `pthread_rwlock_init'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadReadWriteLock::~asCThreadReadWriteLock()':
as_thread.cpp:(.text+0x708): undefined reference to `pthread_rwlock_destroy'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadReadWriteLock::AcquireExclusive()':
as_thread.cpp:(.text+0x722): undefined reference to `pthread_rwlock_wrlock'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadReadWriteLock::ReleaseExclusive()':
as_thread.cpp:(.text+0x73c): undefined reference to `pthread_rwlock_unlock'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadReadWriteLock::AcquireShared()':
as_thread.cpp:(.text+0x756): undefined reference to `pthread_rwlock_rdlock'
/usr/local/lib/libangelscript.a(as_thread.o): In function `asCThreadReadWriteLock::ReleaseShared()':
as_thread.cpp:(.text+0x770): undefined reference to `pthread_rwlock_unlock'
collect2: error: ld returned 1 exit status
似乎很多東西都沒有定義。 我認為這是庫安裝的問題。
AngelScript 需要為線程定義一個庫。 在 GNU/Linux 上,您可以通過在編譯命令中添加-lpthread
來啟用此功能,以添加 Posix 線程。
如何為 Linux 安裝 AngelScript [源代碼]
mkdir angelscript
cd angelscript
wget http://www.angelcode.com/angelscript/sdk/files/angelscript_2.22.1.zip
unzip angelscript_*.zip
cd sdk/angelscript/projects/gnuc
SHARED=1 VERSION=2.22.1 make
# sudo make install fails when making the symbolic link, this removes the existing versions
rm -f ../../lib/\*
sudo SHARED=1 VERSION=2.22.1 make install
#cleanup files made by root
rm -f ../../lib/\*
cd ../../../../../
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.