转载请注明出处。https://rhirufxmbcyj.gitlab.io
1、mac下xcode链接动态库
将dylib拷贝到源码文件夹下,然后在xcode工程中添加文件,将dylib添加到工程中编译即可
使用cmake编译出的程序没有图标
mac下app的图标需要手动指定图片和图片名(在info.plist中)
- MAC下的图标应设置为icns格式
- 图标文件应加入源码文件列表中
- 图标的路径需要为全路径
1
2
3set(APP_ICNS ${ROOTDIR}/src/qt/Resources/myapp.icns)
set_source_files_properties(${APP_ICNS} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
add_executable(my_project MACOSX_BUNDLE ${APP_ICNS} ${SOURCE_FILES})
这一步完成后只是在make完以后,app的Contents下Resources里出现了icns图标,还需要如下代码设置Info.plist才能对app包起作用1
set_target_properties(my_project PROPERTIES MACOSX_BUNDLE_ICON_FILE myapp.icns)
ps:make完以后手动修改Info.plist无效
类似在cmake中修改Info.plist字段中的值还有以下1
2
3
4
5
6
7
8MACOSX_BUNDLE_INFO_STRING
MACOSX_BUNDLE_ICON_FILE
MACOSX_BUNDLE_GUI_IDENTIFIER
MACOSX_BUNDLE_LONG_VERSION_STRING
MACOSX_BUNDLE_BUNDLE_NAME
MACOSX_BUNDLE_SHORT_VERSION_STRING
MACOSX_BUNDLE_BUNDLE_VERSION
MACOSX_BUNDLE_COPYRIGHT
另外可以直接设置plist的模板
启用了MACOSX_BUNDLE的可执行目标将在Mac OS X上构建为应用程序包。默认情况下,通过配置位于CMAKE_MODULE_PATH中的名为MacOSXBundleInfo.plist.in的模板来创建其Info.plist文件。此属性指定备用模板文件名,该名称可以是完整路径。
https://cmake.org/cmake/help/v3.0/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.html
MAC下的实用工具
十六进制编辑器:010Editor、Synalyze It!
类似objdump功能:otool