gcc跨平台編譯

2021-07-31 00:07:39 字數 1028 閱讀 6913

在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...