我的问题是,如何将 Linux 中的 vcpkg 与交叉构建工具链以及 sysroot 集成?例子:
fedora30
x86_64-centos7-gnu
来自https://github.com/microsoft/vcpkg快速入门 说:
> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg
PS> .\bootstrap-vcpkg.bat
Linux:~/$ ./bootstrap-vcpkg.sh
Run Code Online (Sandbox Code Playgroud)
在我的机器上,我安装了 gcc 9.1,它被vcpkg
bootstrap.sh 检测到并且工作正常;
同时,我构建了一个用于交叉构建的工具链,它位于$HOME/cross/x64_86-centos7-linux-gnu/
如何设置另一个vcpkg
使用特定工具链的目录树?
通过“使用”,我的意思是 vcpkg 及其所有包都应该由该工具链编译,并且使用 vcpkg 的 toolchain_file '$vcpkg_home/scripts/buildsystems/vcpkg.cmake' 的项目都应该将该工具链作为 $CC 和构建工具集?
为什么在 flatMap 中 putStrLn 后跟一个结果语句没有被有效地写入标准输出?
object Mgr extends App {
def main1(args: Array[String]) = getStrLn.flatMap { s =>
putStrLn(s) // Why this did not write to console?
UIO.succeed(s)
}
override def run(args: List[String]): URIO[zio.ZEnv, Int] = main1(Array()).fold(_ => 1,
{ x =>
println(x) // only this line wrote to console, why?
0
})
}
Run Code Online (Sandbox Code Playgroud) 为什么非编译时计算函数“产品”可以是constexpr
?
#include <iostream>
constexpr int product(int x, int y) {
return x * y;
}
int main(int argc, char* argv[]) {
using namespace std;
int x1, y1 = 0;
cout << "input x1:\n";
cin >> x1;
cout << "input y1:\n";
cin >> y1;
const int a = product(x1, y1);
cout << a << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)