分类 Mac 下的文章

flutter安装
git 下载 flutter:git clone -b stable https://github.com/flutter/flutter.git
配置.zshrc

export PATH=/Users/fanjinlong/dev/flutter/flutter/bin:$PATH
export ANDROID_HOME=/Users/fanjinlong/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
# 记得配置完了,执行下 source ~/.zshrc 更新环境变量

命令行执行 flutter doctor 检查环境配置情况。
在 Android studio 中添加插件 flutter + dart
根据flutter doctor 解决所有必要的问题
运行 flutter run
如果不能运行,查看报错,比如 flutter emulators——>flutter emulators --launch Pixel_2_API_29——> flutter run

Running "flutter pub get" in flutter_app...                         3.4s
Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider
enabling software rendering with "--enable-software-rendering".
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
540.5s (!)
Resolving dependencies...
634.0s (!)
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                       147.6s (!)
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...                         2.9s
D/EGL_emulation( 4282): eglMakeCurrent: 0xd681a0c0: ver 3 0 (tinfo 0xd680f300)
D/eglCodecCommon( 4282): setVertexArrayObject: set vao to 0 (0) 1 0
Syncing files to device Android SDK built for x86...
I/OpenGLRenderer( 4282): Davey! duration=788ms; Flags=1, IntendedVsync=1386986507632, Vsync=1386986507632, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=1386993436664, AnimationStart=1386993471165, PerformTraversalsStart=1386993474034, DrawStart=1387600641641, SyncQueued=1387601916409, SyncStart=1387607434150, IssueDrawCommandsStart=1387609441987, SwapBuffers=1387725240730, FrameCompleted=1387780735364, DequeueBufferDuration=31361000, QueueBufferDuration=260000,
I/Choreographer( 4282): Skipped 46 frames!  The application may be doing too much work on its main thread.     D/EGL_emulation( 4282): eglMakeCurrent: 0xd681a300: ver 3 0 (tinfo 0xd680f3d0)                                 D/eglCodecCommon( 4282): setVertexArrayObject: set vao to 0 (0) 1 0                                            Syncing files to device Android SDK built for x86...            183,943ms (!)
?  To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R".
An Observatory debugger and profiler on Android SDK built for x86 is available at:
http://127.0.0.1:52933/6NColDWV2ps=/
For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".
Initializing hot reload...
Reloaded 0 of 455 libraries in 956ms.
To run an emulator, run 'flutter emulators --launch <emulator id>'.
To create a new emulator, run 'flutter emulators --create [--name xyz]'

查看操作系统平台和内核版本:uname -a
Mac 下编译 Linux 和 Windows 64位可执行程序

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Linux 下编译 Mac 和 Windows 64位可执行程序

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Windows 下编译 Mac 和 Linux 64位可执行程序

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go

Mac 编译 Linux 32位可执行程序

CGO_ENABLED=0 GOOS=linux GOARCH=386 go build main.go

CGO_ENABLED = 0 交叉编译不支持 CGO 所以要禁用它。
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
CGO是一个令人惊异的技术,它允许Go与C的类库交互操作,让Go能够使用 C语言 积累的各种资源。
对于使用CGO的程序,大部分情况可以通过配置$CC参数使用自行准备的交叉编译工具进行编译。

CGO_ENABLED=1 GOOS=linux GOARCH=arm CC=/Volumes/Armx/bin/arm-none-linux-gnueabi-gcc GOARM=5 go build -x main.go

其中$CC参数指定的是ARM工具链位置。
目前解决CGO跨平台编译问题的思路有:
- 用目标平台的工具链进行交叉编译
- 用原生代码重写CGO实现的功能,当然这是一句废话:small:

  1. 在官网下载pkg安装包,点击安装,安装完成后,资源被写入/usr/local/go 目录下 或者 brew install go 使用brew下载 (推荐)

  2. 设置profile文件,我用的zsh,修改~/.zshrc。用bash的同理,修改~/.bash_profile

    # go
    export GOROOT=/usr/local/go # pkg 安装 go 的路径
    export GOROOT=/usr/local/homebrew/Cellar/go/1.12.1/libexec # brew 安装 go 的可执行文件路径,ps.不能使用bin目录
    export GOPATH=~/dev/go/golib #工作区,存放go源码文件的目录
    export GOBIN=~/dev/go/gobin #存放编译后可执行文件的目录
    export GOPROXY="https://athens.azurefd.net" # 微软提供的公共代理
    export export GO111MODULE=on # 必须使用module依赖,在src/ 目录下可以使用module
    export PATH=$PATH:$GOROOT/bin/:$GOBIN
    

3.验证,命令行执行go version返回go version go1.11.5 darwin/amd64。go语言环境配置完毕。



title: CocoaPods
date: 2016-10-26 10:37:38
tags: Cocoapods
category: iOS
id: 3

  • .podspec文件是做什么的
.podspec文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
  • Podfile 文件的自述
  Podfile是用于配置项目所需要的第三方库的地方,使用格式如下:
  platform :ios, '7.0'
  target 'xxx' do
      pod 'AFNetworking', '~> 3.1.0'
      ## react-native (引用本地文件)
      pod 'React', :path => './node_modules/react-native', :subspecs => [
          'Core',
      ]
  end