概述
警告:此函式庫仍在積極開發中,API 可能會變動。
libhandler 在 C 語言中實作代數效應處理器。它以安全且可移植的方式擷取堆疊。代數效應處理器可用於以直線方式撰寫非同步程式碼,我們也希望利用它讓使用 libuv 的程式設計更加方便。
此函式庫的詳細說明請參閱隨附的技術報告。若需代數效應入門介紹,請參閱 koka 手冊中的相關章節。
祝使用愉快!
-- Daan.
建置
建置 libhandler 需產生靜態 C 函式庫,以便連結至您自己的專案。libhandler 盡可能撰寫為可移植,但仍依賴堆疊與 setjmp 實作的平台特定假設。請在新平台上仔細測試。目前已測試的平台包括:
-
(
gcc,clang,cl)-x86-pc-windows(32 位元,Windows) -
(
gcc,clang,cl)-x64-pc-windows(64 位元,Windows) -
(
gcc,clang)-amd64-pc-linux(64 位元,Ubuntu 16.04) -
(
gcc,clang)-arm-linux(32 位元,ARMv7 (raspberry pi 3, Raspbian/Debian Jessie)) -
gcc-arm64-linux(64 位元,ARMv8 (raspberry pi 3, Gentoo Linux))
C++ 支援已可運作,但仍在開發中。
在 test/libuv 目錄(dev 分支)中,已有初步測試程式碼用於整合 libuv。Microsoft IDE 方案包含使用 libuv 建置的專案。
Unix/MacOSX
使用一般 configure 與 make 進行建置:
$ ./configure
$ make depend
$ make
使用 VARIANT=release 建置發行版本,並以 tests 作為目標執行測試。例如:
$ make tests VARIANT=release
組態選項:
--cc=<cc>: 指定要使用的 C 編譯器(例如gcc、clang等)--cc-opts=<options>: 指定要使用的額外 C 編譯器旗標(例如-m64)--asm-opts=<options>: 指定要使用的額外組譯器旗標(例如-m64)--abi=<abi>: 指定呼叫慣例 ABI。例如--abi=amd64或--abi=x64。--os=<os>: 指定目標作業系統,例如--os=windows。--ar=<archiver>: 指定用於建立靜態函式庫的歸檔器(=ar)--cxx=<c++ compiler>: 指定要使用的 C++ 編譯器(=$cc++)--link=<linker>: 指定要使用的連結器(=$cc)
Make 參數:
VARIANT=<debug|testopt|release> : 指定建置變體。testopt會建置最佳化版本,但啟用斷言。VALGRIND=1: 在 valgrind 下執行測試以進行記憶體洩漏偵測。
Make 目標:
staticlib: 建置靜態函式庫。tests: 建置並執行測試。bench: 建置並執行基準測試。clean: 清除所有輸出。staticlibxx: 為 C++ 建置函式庫(支援例外與解構子反繞)testsxx: 為 C++ 建置並執行測試。
Windows
在 Windows 上有三種建置方式:
-
使用 Microsoft Visual C++ IDE。2015 社群版可供非商業用途免費下載。 方案檔案位於:
-
在 Windows 10 上啟用「Linux 子系統」。安裝說明請參閱 MSDN。 啟用後,您只需在命令提示字元中執行
bash即可進入 Windows 下的 Ubuntu Linux。 使用apt安裝開發工具:sudo apt-get updatesudo apt install build-essentialsudo apt install clang
之後即可如上所述執行
configure與make。 -
在較舊的 Windows 版本上,您可以使用
msys2, 可從 http://msys2.github.io 下載。請仔細遵循安裝說明。安裝後,可使用msys2套件管理員安裝更多工具:pacman -S mingw-w64-x86_64-gcc(C 編譯器)pacman -S mingw-w64-x86_64-gdb(偵錯器)pacman -S make(make)
之後即可如上所述執行
configure與make。
已在 Windows 上成功配置 bash:
gcc-amd64-pc-linux-gnu
僅使用./configureclang-amd64-pc-linux-gnu
先執行sudo apt install clang,再執行./configure --cc=clang
使用 msys2 在 Windows 上成功配置:
gcc-x64-w64-mingw32
僅使用./configuregcc-x86-w64-mingw32
使用已安裝mingw-w64-i686-toolchain的mingw32shell。clang-x64-pc-windows
使用./configure --cc=/c/programs/llvm/bin/clang。clang-x86-pc-windows(32 位元)
使用./configure --cc=/c/programs/llvm/bin/clang --cc-opts=-m32 --asm-opts=-m32。
使用 Visual Studio IDE:
cl-x64-pc-windows選擇 64 位元建置。cl-x86-pc-windows選擇 32 位元建置。
Windows 上的 LibUV
已在 Visual Studio 的 x64 建置中啟用。您需要在主 libhandler 資料夾下的 libuv 資料夾中放置 libuv 標頭檔與二進位檔。
Windows 的二進位檔可從 libuv.org 取得。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.