最近用cmake组织了一个打包iOS Framework的工程,但发现没有导出头文件,只编出了一个静态库。再三确定了我添加了PUBLIC_HEADER属性,制定的文件路径也是存在的。
set_target_properties(mylib PROPERTIES
...
PUBLIC_HEADER "xxx.h;yyy.h"
...
)
最终试错发现:
- 需要导出的头文件必须跟源文件一起追加到工程里并且务必确保路径是对的,否则framework里面不导出Headers,例如
add_library (mylib STATIC ${SOURCES} ${HEADERS})
再用上面的set_target_properties
制定PUBLIC_HEADER就一切回归正常了
ps: 我自己还犯了另一个错误,头文件包进去了,但有个目录大小写没注意就算PUBLIC_HEADER里面路径写对还是不行。无意间发现文件夹名字大小写没对上,改正了之后头文件就导出来了。
网友评论