CMAKE——message()函数

message :为用户显示一条消息。


 message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]
  "message to display" ...)


 可以用下述可选的关键字指定消息的类型:

(无) = 重要消息;
 STATUS = 非重要消息;
 WARNING = CMake 警告, 会继续执行;
 AUTHOR_WARNING = CMake 警告 (dev), 会继续执行;
 SEND_ERROR = CMake 错误, 继续执行,但是会跳过生成的步骤;
 FATAL_ERROR = CMake 错误, 终止所有处理过程;


 CMake 的命令行工具会在 stdout 上显示 STATUS 消息,在 stderr 上显示其他所有消息。
CMake 的 GUI 会在它的 log 区域显示所有消息。交互式的对话框(ccmake 和 CMakeSetup)
将会在状态行上一次显示一条 STATUS 消息,而其他格式的消息会出现在交互式的弹出式对话
框中。
 CMake 警告和错误消息的文本显示使用的是一种简单的标记语言。文本没有缩进,超过长
度的行会回卷,段落之间以新行做为分隔符。

 


1.输出错误 FATAL_ERROR

message(FATAL_ERROR "
FATAL: In-source builds are not allowed.
       You should create a separate directory for build files.
")

2.输出警告 WARNING

message(WARNING "OpenCV requires Android SDK tools revision 14 or newer.")

  

3.输出正常 STATUS

message(STATUS "Can't detect runtime and/or arch")


 

### 使用 CMake 集成 MATLAB 项目 对于希望利用现代构建工具链优势的开发者而言,在 MATLAB 中集成 CMake 可以为混合编程提供强大支持。虽然官方文档并未直接提及此组合[^1],但社区实践表明存在多种方法实现两者的协同工作。 #### 方法一:通过 MEX 文件编译外部代码 MATLAB 支持调用由其他语言编写的功能模块——即所谓的 MEX 函数。借助 CMake 的灵活性,可以创建自定义目标来处理这些文件的编译过程: ```cmake # 定义MEX扩展名 set(MATLAB_MEX_EXTENSION mexw64) # 设置Matlab根目录环境变量 if(NOT DEFINED ENV{MATLAB_ROOT}) message(FATAL_ERROR "Please set the environment variable 'MATLAB_ROOT'") endif() get_filename_component(Matlab_ROOT_DIR $ENV{MATLAB_ROOT} ABSOLUTE) include_directories(${Matlab_ROOT_DIR}/extern/include) link_directories(${Matlab_ROOT_DIR}/bin/${CMAKE_SYSTEM_NAME}) add_library(myMexFunction SHARED my_mex_function.cpp) target_link_libraries(myMexFunction ${Matlab_ROOT_DIR}/extern/lib/win64/microsoft/libmex.lib) set_target_properties(myMexFunction PROPERTIES SUFFIX .${MATLAB_MEX_EXTENSION}) ``` 上述脚本展示了如何配置一个简单的 CMakeLists.txt 来生成兼容于 Windows 平台下的 MEX 文件。请注意调整路径以适应不同操作系统的需求。 #### 方法二:嵌入式引擎 API 调用 另一种方式是在独立应用程序内部启动并控制 MATLAB 运行实例。这通常适用于更复杂的场景,比如开发图形界面或其他交互性强的应用程序时想要无缝接入 MATLAB 功能的情况。此时可考虑采用 Embedded Engine API 或者 Compiler SDK 提供的支持服务[^2]。 然而值得注意的是,这种方法可能涉及额外授权费用以及更为严格的部署条件限制。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值