我正在尝试使用cmake创建 OS X 框架。这是我的CMakeLists.txt
文件:
project( Foo)
cmake_minimum_required (VERSION 3.7)
add_library( Foo SHARED
foo.c
)
set_target_properties( Foo PROPERTIES
FRAMEWORK TRUE
RESOURCE "foo.md"
PUBLIC_HEADER "foo.h"
)
Run Code Online (Sandbox Code Playgroud)
当我运行时生成了( mkdir build ; cd build ; cmake .. ; make)
一个Foo.framework
,但标题和资源没有出现在其中。我缺少什么?(cmake版本3.7.1)
如何重现。保存上面的CMakeLists.txt。现在执行:
#!/bin/sh
echo "int version = 1;" > foo.c
touch foo.h
touch foo.md
( mkdir build ; cd build ; cmake .. ; make)
ls -R build/Foo.framework/
Run Code Online (Sandbox Code Playgroud) 当程序崩溃时,从 bash 启动的程序会输出Abort trap: 6 ,很有帮助:
$ ./crash-if-correct > /dev/null 2>&1
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)
对于应该崩溃的测试用例,这会创建看起来错误的输出。这如何能够压制?
我怀疑这不是 shell(在我的例子中是 bash),因为ack 'trap:'
通过 bash 源没有发现任何内容。
简单的重现方法:
$ cat <<EOF > abort.c
main()
{
abort();
}
EOF
$ cc -w -o abort abort.c
$ sh -c ./abort > /dev/null 2>&1
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)