編譯c ares庫及跨平台編譯

2021-10-02 18:20:33 字數 1643 閱讀 6120

開啟mac終端,執行如下命令

1、$ git clone

2、$ cd c-ares

1、$ ./buildconf

2、$ autoconf configure.ac

3、$ ./configure

4、$ make

5、$ sudo make install

編譯出mac平台的庫,在」.libs/「目錄下

若以上執行執行過程中有報如下錯誤:

libtoolize not found.

1、$ brew install libtool

2、$ brew link libtool

參考:1、$ export ndk=/tmp/android-ndk-r8b(本機ndk路徑)

2、$ndk/build/tools/make-standalone-toolchain.sh \ --platform=android-19 \ --install-dir=/tmp/my-android-toolchain(本地乙個路徑,可自行指定)

3、$ export path=/tmp/my-android-toolchain/arm-linux-androideabi/bin:$path (前面部分/tmp/my-android-toolchain是2中指定的路徑)

另,本機執行的結果是執行到某個目錄下的壓縮檔案arm-linux-androideabi.tar.bz2,提示資訊中會顯示出該檔案的目錄,將該壓縮檔案拷貝到2中指定的目錄下,解壓縮即可,繼續後面的配置。

4、$ export sysroot=/tmp/my-android-toolchain/arm-linux-androideabi/sysroot (前面部分/tmp/my-android-toolchain是2中指定的路徑)

5、$ export cc="arm-linux-androideabi-gcc --sysroot=$sysroot"

6、$ export cxx="arm-linux-androideabi-g++ --sysroot=$sysroot"

7、$ ./configure --prefix=$(pwd)/build --host=arm-linux --disable-shared cflags="-march=armv7-a" cppflags="-d__android_api__=19"

8、若出現如下錯誤:

/users/ouasahikage/my-android-toolchain/arm-linux-androideabi/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: no such file or directory

說明是上面的export配置有問題,自己檢查是否配置正確。

9、若配置成功(執行configure命令沒有報錯),執行make報如下錯誤:

undefined reference to 'stderr'

說明是androidapi版本較低導致的,應該是從17之後就沒有stderr,應當在configure的時候指定一下:cppflags="-d__android_api__=19"。

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...

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