CMAKE到底行不行哦,怎么这么多问题

排山和倒海 2014-09-04 02:10:18
尝试用cmake解决问题,没想到问题比没解决还要多,真对这个工具失望

我下了一个opencv的库,然后设置相关路径,进行生成

生成都是没问题的,除了一些警告

但是,用vs编译就是不通过不晓得怎么回事,各种问题出错,对这个工具真失望



Checking for Windows Platform SDK
Checking for Visual Studio 2012
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is exact version "2.7.8")
CMake Warning (dev) at cmake/OpenCVModule.cmake:789 (get_target_property):
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

The LOCATION property should not be read from target "opencv_test_core".
Use the target name directly with add_custom_command, or use the generator
expression $<TARGET_FILE>, as appropriate.

Call Stack (most recent call first):
modules/core/CMakeLists.txt:58 (ocv_add_accuracy_tests)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at cmake/OpenCVModule.cmake:789 (get_target_property):
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

The LOCATION property should not be read from target "opencv_test_flann".
Use the target name directly with add_custom_command, or use the generator
expression $<TARGET_FILE>, as appropriate.

Call Stack (most recent call first):
cmake/OpenCVModule.cmake:649 (ocv_add_accuracy_tests)
modules/flann/CMakeLists.txt:2 (ocv_define_module)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at cmake/OpenCVModule.cmake:789 (get_target_property):
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

The LOCATION property should not be read from target "opencv_test_imgproc".
Use the target name directly with add_custom_command, or use the generator
expression $<TARGET_FILE>, as appropriate.

Generating done
...全文
1544 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
waruqi 2016-12-15
  • 打赏
  • 举报
回复
可以试试xmake
排山和倒海 2014-09-04
  • 打赏
  • 举报
回复
引用 11 楼 Saleayas 的回复:
VS studio 使用的是 User options 文件,就是那个 .suo 来配置这些默认值的和是否卸载等等。
所以这些操作在 解决方案中是看不到的。

你答到点子上了,我现在就是需要读取这个配置文件,然后将配置文件中的默认启动项目参数给修改掉
Saleayas 2014-09-04
  • 打赏
  • 举报
回复
VS studio 使用的是 User options 文件,就是那个 .suo 来配置这些默认值的和是否卸载等等。 所以这些操作在 解决方案中是看不到的。
排山和倒海 2014-09-04
  • 打赏
  • 举报
回复
引用 8 楼 Saleayas 的回复:
使用 MSBuid 或者 Devenv 都可以直接指定到 project 的。
我现在问题主要出在,vs默认的项目是ALL_BUILD这个项目,但是我的默认启动项目应该是HelloCmake project ,所以通过移除all_build和zero项目是可以的,另外通过右键将helloCmake设为默认启动项目也是可以的 就是不知道MSbuild和devenv两个工具能不能设置默认启动项目 我用devenv /run 这个命令直接编译我的项目是会出错的
排山和倒海 2014-09-04
  • 打赏
  • 举报
回复
引用 7 楼 wanght99 的回复:
[quote=引用 4 楼 wangqing008 的回复:] [quote=引用 1 楼 wanght99 的回复:] 感觉是工程文件不兼容, cmake输出的是什么版本的VS工程, 你用的是什么版本VS? 工程文件兼容问题微软自己都没解决好的.
目前出的问题是,有多个项目,如果是运行则出现问题 这是怎么回事呢? 我的一个解决方案是,移除另外的两个项目, 但是,我现在需要利用vs的devenv.exe工具进行编译,好像命令行下devenv没有移除的方法啊 求救[/quote] devenv不懂. 你这个错误感觉可以通过手动设编译输出目录, 以及可执行文件目录来解决.[/quote] 我现在问题主要出在,vs默认的项目是ALL_BUILD这个项目,但是我的默认启动项目应该是HelloCmake project ,所以通过移除all_build和zero项目是可以的,另外通过右键将helloCmake设为默认启动项目也是可以的
Saleayas 2014-09-04
  • 打赏
  • 举报
回复
使用 MSBuid 或者 Devenv 都可以直接指定到 project 的。
wanght99 2014-09-04
  • 打赏
  • 举报
回复
引用 4 楼 wangqing008 的回复:
[quote=引用 1 楼 wanght99 的回复:] 感觉是工程文件不兼容, cmake输出的是什么版本的VS工程, 你用的是什么版本VS? 工程文件兼容问题微软自己都没解决好的.
目前出的问题是,有多个项目,如果是运行则出现问题 这是怎么回事呢? 我的一个解决方案是,移除另外的两个项目, 但是,我现在需要利用vs的devenv.exe工具进行编译,好像命令行下devenv没有移除的方法啊 求救[/quote] devenv不懂. 你这个错误感觉可以通过手动设编译输出目录, 以及可执行文件目录来解决.
排山和倒海 2014-09-04
  • 打赏
  • 举报
回复
引用 3 楼 AncientLysine 的回复:
刚用CMake简直赞,所有平台统一书写。后来vs2013要开ltcg和各种优化选项,要统一所有库和主程序的运行库链接方式,要设xp兼容,使用的库好多甚至都没cmake文件 最后还是给每个平台的工具单独准备了一份,反正我的工程也就1W+代码总共几十个文件。 其实我觉得跨平台构建工具还是google的GYP更方便,根本没必要强行统一,vs就给你生成sln,gcc就出makefile,自己还可以根据具体需求稍微定制一下。
求看一下我上面的回复,问题啊
排山和倒海 2014-09-04
  • 打赏
  • 举报
回复
引用 2 楼 Saleayas 的回复:
我用 Opencv 从来都是直接把 源文件 加入到我的项目工程中,直接编译。 不直接使用任何库。
求看一下我上面的回复,问题啊
排山和倒海 2014-09-04
  • 打赏
  • 举报
回复
引用 1 楼 wanght99 的回复:
感觉是工程文件不兼容, cmake输出的是什么版本的VS工程, 你用的是什么版本VS?
工程文件兼容问题微软自己都没解决好的.

目前出的问题是,有多个项目,如果是运行则出现问题

这是怎么回事呢?
我的一个解决方案是,移除另外的两个项目,
但是,我现在需要利用vs的devenv.exe工具进行编译,好像命令行下devenv没有移除的方法啊
求救
AncientLysine 2014-09-04
  • 打赏
  • 举报
回复
刚用CMake简直赞,所有平台统一书写。后来vs2013要开ltcg和各种优化选项,要统一所有库和主程序的运行库链接方式,要设xp兼容,使用的库好多甚至都没cmake文件 最后还是给每个平台的工具单独准备了一份,反正我的工程也就1W+代码总共几十个文件。 其实我觉得跨平台构建工具还是google的GYP更方便,根本没必要强行统一,vs就给你生成sln,gcc就出makefile,自己还可以根据具体需求稍微定制一下。
Saleayas 2014-09-04
  • 打赏
  • 举报
回复
我用 Opencv 从来都是直接把 源文件 加入到我的项目工程中,直接编译。 不直接使用任何库。
wanght99 2014-09-04
  • 打赏
  • 举报
回复
感觉是工程文件不兼容, cmake输出的是什么版本的VS工程, 你用的是什么版本VS? 工程文件兼容问题微软自己都没解决好的.

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧