网站开发毕设文档,室内装饰设计人员,百度地图推广怎么做的,上街区做网站BUILD.gn文件怎么写#xff0c;Gn Ninja编译一个Hello world程序的例子Demo
作者将狼才鲸创建日期2024-03-11
Ninja安装流程见#xff1a;一个能直接运行的Ninja例子#xff0c;build.ninja文件怎么写#xff1f;Gn安装流程见#xff1a;Ubuntu18.04下安装Gn软件 这是一…BUILD.gn文件怎么写Gn Ninja编译一个Hello world程序的例子Demo
作者将狼才鲸创建日期2024-03-11
Ninja安装流程见一个能直接运行的Ninja例子build.ninja文件怎么写Gn安装流程见Ubuntu18.04下安装Gn软件 这是一个简单的BUILD.gn配置文件
jimubuntu:~/0_Git/third_party_gn/examples/simple_build$ cat BUILD.gn
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.executable(hello) {sources [ hello.cc ]deps [:hello_shared,:hello_static,]
}shared_library(hello_shared) {sources [hello_shared.cc,hello_shared.h,]defines [ HELLO_SHARED_IMPLEMENTATION ]
}static_library(hello_static) {sources [hello_static.cc,hello_static.h,]
}这是Gn官方的例子在Gn的源码里面 使用Ubuntu系统安装Git、Ninja、Gn、Clang软件git clone gitgitee.com:openharmony/third_party_gn.git 拉取源码或者https://gitee.com/openharmony/third_party_gn/repository/archive/master.zip 下载源码 cd examples/simple_build/ 下载源码后进入其中的子目录 ls 先看看里面的文件
jimubuntu:~/0_Git/third_party_gn/examples/simple_build$ ls
build BUILD.gn hello.cc hello_shared.cc hello_shared.h hello_static.cc hello_static.h README.md tutorialjimubuntu:~/0_Git/third_party_gn/examples/simple_build$ cat hello.cc
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.#include stdio.h#include hello_shared.h
#include hello_static.hint main(int argc, char* argv[]) {printf(%s, %s\n, GetStaticText(), GetSharedText());return 0;
}gn gen -C out 按Gn规则文件生成Ninja配置文件
jimubuntu:~/0_Git/third_party_gn/examples/simple_build$ gn gen -C out
Done. Made 3 targets from 4 files in 45mscd out/ 进入输出目录看看生成的什么内容
jimubuntu:~/0_Git/third_party_gn/examples/simple_build$ tree out/
out/
├── args.gn
├── build.ninja
├── build.ninja.d
├── obj
│ ├── hello.ninja
│ ├── hello_shared.ninja
│ └── hello_static.ninja
└── toolchain.ninja1 directory, 7 filesjimubuntu:~/0_Git/third_party_gn/examples/simple_build$ cat out/build.ninja
ninja_required_version 1.7.2rule gncommand ../../../../../../../usr/bin/gn --root./.. -q --C --regeneration gen .pool consoledescription Regenerating ninja filesbuild build.ninja: gngenerator 1depfile build.ninja.dsubninja toolchain.ninjabuild hello_shared: phony ./libhello_shared.so
build hello_static: phony obj/libhello_static.a
build $:hello: phony hello
build $:hello_shared: phony ./libhello_shared.so
build $:hello_static: phony obj/libhello_static.abuild all: phony $hello $./libhello_shared.so $obj/libhello_static.adefault allninja 开始编译和make命令类似
jimubuntu:~/0_Git/third_party_gn/examples/simple_build/out$ ninja
[6/6] LINK hellojimubuntu:~/0_Git/third_party_gn/examples/simple_build/out$ tree
.
├── args.gn
├── build.ninja
├── build.ninja.d
├── hello
├── libhello_shared.so
├── obj
│ ├── hello.hello.o
│ ├── hello.ninja
│ ├── hello_shared.ninja
│ ├── hello_static.ninja
│ ├── libhello_shared.hello_shared.o
│ ├── libhello_static.a
│ └── libhello_static.hello_static.o
└── toolchain.ninja1 directory, 13 files./hello 运行编译后的可执行文件
jimubuntu:~/0_Git/third_party_gn/examples/simple_build/out$ ./hello
Hello, world参考网址 GN环境搭建