Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos cmake框架目标不复制头或资源?_Macos_Frameworks_Cmake - Fatal编程技术网

Macos cmake框架目标不复制头或资源?

Macos cmake框架目标不复制头或资源?,macos,frameworks,cmake,Macos,Frameworks,Cmake,我正在尝试使用创建一个OSX框架。这是我的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" ) 当我运行(mkdir build;cd build;cma

我正在尝试使用创建一个OSX框架。这是我的
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"
)
当我运行
(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/

您应该将
PUBLIC\u标题添加到
add\u库中

project( Foo )

cmake_minimum_required (VERSION 3.7)

add_library( Foo SHARED
    foo.c
    foo.h
)

set_target_properties( Foo PROPERTIES
    FRAMEWORK TRUE
    RESOURCE "foo.md"
    PUBLIC_HEADER "foo.h"
)
除非将头文件添加到目标,否则Cmake不知道从何处复制头文件。重建现在将
foo.h
复制到
foo.framework/Headers/
中。可能还有其他方法可以做到这一点,但这肯定会产生预期的结果

即使通过
target\u include\u directories
函数添加头文件,它也不会拾取头文件,这是有意义的,因为CMake不知道任何未显式添加到目标的文件