在osx下編譯報找不到malloc.h,經過查詢是標頭檔案位置不相容,於是搜尋資料,看如何通過巨集來相容不同平台。
在osx下可以通過gcc -arch i386 -dm -e - < /dev/null | sort
檢視gcc定義的預編譯巨集。
可以新增如下**進行相容
#ifdef _win32
//define something for windows (32-bit and 64-bit, this part is common)
#ifdef _win64
//define something for windows (64-bit only)
#else
//define something for windows (32-bit only)
#endif
#include "targetconditionals.h"
#if target_iphone_simulator
// ios simulator
#elif target_os_iphone
// ios device
#elif target_os_mac
// other kinds of mac os
#else
#endif
#elif __android__
// android
#elif __linux__
// linux
#elif __unix__ // all unices not caught above
// unix
#elif defined(_posix_version)
// posix
#else
# error "unknown compiler"
#endif
譬如malloc.h是這樣的:
#include
#else
#include
#endif
golang跨平台編譯
golang中跨平台交叉編譯涉及兩個重要的環境變數 goos和goarch,分別代表target host os和target host arch,如果沒有顯式設定這些環境變數,我們通過go env可以看到go編譯器眼中這兩個環境變數的當前值 go env goarch amd64 gobin ho...
Golang 跨平台編譯
1 首先進入go src 原始碼所在目錄,執行如下命令建立目標平台所需的包和工具檔案。cd usr loc al g o sr c cgo enabled 0 goos linux goarch amd64 make.bash 如果是 windows 則修改 goos 即可。cgo enabled ...
跨平台shader 編譯
本文根據我部落格上的文章跨平台shader編譯的過去 現在和未來改寫。知乎編輯器不支援多個級別的標題,以至於我只能用加粗不加粗來區分了。很多跨平台遊戲引擎都有統一shader的需求。比如klayge從建立伊始,就強調乙份 跨多個平台,shader 也不例外。如果需要對不同平台都分別寫一遍shader...