小编jca*_*er2的帖子

为什么Chromium Embedded Framework必须以root身份运行?(Unity安装程序)

我正在安装Unity.Unity安装程序说它必须以root身份运行,这是因为Chromium Embedded Framework必须以root身份运行.为什么Chromium Embedded Framework必须以root身份运行?

Unity安装程序在这里指出了我,但该页面没有提到root权限.

这是控制台输出,为后人:

lol@localhost:unity(0)\ ./unity-editor-installer-5.4.0b23+20160628.sh
This installer must be run as root.
Run Code Online (Sandbox Code Playgroud)

以及安装程序的相关代码段:

# chrome-sandbox requires this: https://code.google.com/p/chromium/wiki/LinuxSUIDSandbox
chown root "${EXTRACT_SUBDIR}/Editor/chrome-sandbox"
chmod 4755 "${EXTRACT_SUBDIR}/Editor/chrome-sandbox"
Run Code Online (Sandbox Code Playgroud)

编辑7月15日:找到这个帖子.有人可以帮助确认chrome-sandbox上不再需要root所有权和SUID吗?

我正按照这些说明进行构建,但在运行cros_sdk时仍然需要root密码.

unity-game-engine chromium-embedded

5
推荐指数
1
解决办法
930
查看次数

setTimeout不适用于中等负数

如果setTimeout使用较小或较大的负数进行呼叫,则会立即运行回调,但如果使用中等负数,则回调永远不会运行.有人可以解释一下吗?

// Y and Z are printed, but not X

var x = -7677576503;
var y = -1000000000;
var z = -10000000000;

setTimeout(function () {
  console.log('x');
}, x);
setTimeout(function () {
  console.log('y');
}, y);
setTimeout(function () {
  console.log('z');
}, z);
Run Code Online (Sandbox Code Playgroud)

JSFiddle版本

(在Chromium 57.0.2987.98和Firefox 50.1.0上测试)

javascript settimeout

4
推荐指数
1
解决办法
664
查看次数

将constness从结构传递给它的指针和引用成员

我有一个带有指针的结构.我想这样做,如果一个struct实例是const,那么它的指针内容就无法修改.

struct Foo {};

struct Bar {
    Foo /*const goes here if `const Bar`*/ *foo;
};

void f(Bar& bar) {
    *bar.foo = Foo(); // OK
}

void g(const Bar& bar) {
    *bar.foo = Foo(); // OK - but should be error
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将constness从struct传递给它的指针和引用成员?

c++ const

4
推荐指数
1
解决办法
90
查看次数

检查两个无符号整数的总和是否大于uint_max

假设我有两个整数xy,和我要检查他们的总和是否大于UINT_MAX.

#define UINT64T_MAX std::numeric_limits<uint64_t>::max()

uint64_t x = foo();
uint64_t y = foo();
bool carry = UINT64T_MAX - x < y;
Run Code Online (Sandbox Code Playgroud)

该代码将起作用,但我想知道是否有更有效的方法 - 可能使用CPU具有的一些鲜为人知的功能.

c++ integer unsigned-integer

4
推荐指数
2
解决办法
510
查看次数

Haskell TypeCast类型

我遇到TypeCast了几个不同地方在Haskell中调用的类型类.

这是相当神秘的,我似乎无法完全解析它.

class TypeCast   a b   | a -> b, b -> a     where typeCast   :: a -> b
class TypeCast'  t a b | t a -> b, t b -> a where typeCast'  :: t -> a -> b
class TypeCast'' t a b | t a -> b, t b -> a where typeCast'' :: t -> a -> b

instance TypeCast' () a b => TypeCast a b where typeCast x = typeCast' () …
Run Code Online (Sandbox Code Playgroud)

haskell type-level-computation

1
推荐指数
1
解决办法
279
查看次数

无法删除SQL Azure数据库 - 附近的语法不正确"

我正在针对Azure SQL服务器运行一些SQL,试图删除数据库.

drop database "GEO-Dev-Scheduler";
Run Code Online (Sandbox Code Playgroud)

当我在云中对我的Azure SQL数据库运行此命令时,我收到错误Incorrect syntax near '"'.当我针对我的localdb连接运行它时,它运行正常.

根据此文档,Azure SQL确实支持DROP DATABASETransact-SQL命令.我需要连接到master数据库,我就是这样.该DROP DATABASE声明必须是批处理中唯一的声明.

此页面提供了一些如何DROP DATABASE在Transact-SQL中使用的示例.有趣的是,这些示例都没有将数据库名称括在引号中.我的数据库名称包含破折号,当我尝试删除我得到的双引号时Incorrect syntax near '-'.我也尝试使用单引号和反引号来彻底霰弹枪问题.

无论如何,这个SQL运行正常,localdb所以我有点怀疑,确实存在语法错误.

可能是什么问题呢?

azure azure-sql-database

1
推荐指数
1
解决办法
888
查看次数

与 libavcodec 链接,仍然看到未定义的引用

我正在尝试编译 libavcodec 示例。我收到以下错误:

\n\n
lol@foldingmachine:~/p/avtest$ g++ main.cpp -o main -lavcodec\nmain.cpp: In function \xe2\x80\x98void audio_decode_example(const char*, const char*)\xe2\x80\x99:\nmain.cpp:57:15: warning: \xe2\x80\x98int avcodec_decode_audio4(AVCodecContext*, AVFrame*, int*, const AVPacket*)\xe2\x80\x99 is deprecated [-Wdeprecated-declarations]\n         len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);\n               ^~~~~~~~~~~~~~~~~~~~~\nIn file included from main.cpp:1:0:\n/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:4773:5: note: declared here\n int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,\n     ^~~~~~~~~~~~~~~~~~~~~\nmain.cpp:57:73: warning: \xe2\x80\x98int avcodec_decode_audio4(AVCodecContext*, AVFrame*, int*, const AVPacket*)\xe2\x80\x99 is deprecated [-Wdeprecated-declarations]\n         len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);\n                                                                         ^\nIn file included from main.cpp:1:0:\n/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:4773:5: note: declared here\n int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,\n     ^~~~~~~~~~~~~~~~~~~~~\n/tmp/ccbXVtbs.o: In function `audio_decode_example(char …
Run Code Online (Sandbox Code Playgroud)

c++ libavcodec libav

1
推荐指数
1
解决办法
2817
查看次数

C++有单位类型吗?

我知道C++标准库有一个单元类型 - 我以前见过它 - 但我不记得它叫什么.它以"m"开头,我知道的很多,它等同于这个定义:

struct Unit {};
Run Code Online (Sandbox Code Playgroud)

基本上,单位类型是只有一个不同值的类型 - 与之对比的void是零值且bool有两个值.


如果您必须知道,我的特定用例是关于具有union成员的模板类的构造函数.它几乎看起来像这样:

template<typename T>
struct foo {
    union {
        T t;
        std::string str;
    } data;
    foo(T const& t) {
        data.t = t;
    }
    foo(std::monostate unused, std::string const& str) {
        data.str = str;
    }
};
Run Code Online (Sandbox Code Playgroud)

为了能够将两个构造函数彼此区分开,应该T等于std::string,需要第二个构造函数中的sentry参数. void当然不会奏效,bool也没有意义,因为传入truevs 之间没有区别false- 所需要的是单位类型.

c++ unit-type

1
推荐指数
2
解决办法
757
查看次数