如何构建树外Fuchsia操作系统程序



安装并构建Fuchsia操作系统后,我可以将示例hello-world程序中的字符串从"hello,world!\n"修改为"hello、Fuchsia!\n"。然后,我构建并执行代码,该代码使用生成预期的字符串"Hello,Fuchsia!">

cd fuchsia
fx set bringup.x64 --with //examples/hello_world
fx build; fx qemu
hello_world_cpp

这对于理解如何改变部分紫红色"分布"是很好的。如何在紫红色树之外创建自己的程序?我想当创建在Fuchsia操作系统上运行的程序时,人们通常会这样做,这样就可以干净地管理源代码。

答案

third_party目录用于在紫红色树之外管理的模块。在顶级.gitignore中,目录被排除(链接(:

/third_party/*

您可以在git(链接(中看到这个文件夹大部分是空的。它首先在引导(链接(过程中填充,引导在内部使用jiri update来获取集成清单中指定的repo(例如third_party(。

您将在单独的git回购中维护您的模块。为了进行开发,您可以将此repo克隆到third-party中的一个子目录中。由于.gitignore条目,它将不会被紫红色git跟踪。

示例

文件:

third_party/hello_world/BUILD.gn
third_party/hello_world/hello_world.cc

BUILD.gn:

import("//build/package.gni")
group("hello_world") {
deps = [ ":hello-world-cpp" ]
}
executable("bin") {
output_name = "my_hello_world_cpp"
sources = [ "hello_world.cc" ]
}
package("hello-world-cpp") {
deps = [ ":bin" ]
binaries = [
{
name = "my_hello_world_cpp"
},
]
}

hello_world.cc:

#include <iostream>
int main(int argc, char** argv) {
std::cout << "Hello, World (out-of-tree)!" << std::endl;
return 0;
}

构建并运行:

$ fx set bringup.x64 --with //third_party/hello_world
$ fx build
$ fx qemu
$ my_hello_world_cpp
Hello, World (out-of-tree)!

最新更新