2013-04-09 575 views
0

我正在使用cmake为需要在Visual Studio 6和2010下编译的C++项目生成项目文件。生成的文件对于两个项目都可以,并且可以构建项目没有问题。如何在cmake生成的项目文件中获取绝对路径

但是,2010 vxproj文件包含cpp文件的相对路径,当我使用Jenkins构建文件时,日志包含Jenkins无法用来查找源文件的相对路径。

我看到这一点:

.. \ .. \源\ moduleA \ file1.cpp(74):警告C4800:'BOOL:强制值bool '真' 或 '假'(性能警告)

虽然它应该是source/moduleA/file.cppD:\jenkins\jobs\workspace\source\moduleA\file.cpp詹金斯能够找到该文件。

当然,我可以使解析器解析日志文件并删除..\...\,但我希望找到一个更优雅的解决方案。

+0

你可以显示一段CMake代码,它增加了'source \ moduleA \ file1.cpp'到构建? – arrowd 2013-04-09 09:33:20

+0

看起来它实际上找到了这个文件 - 它在编译时会给你一个警告。你可以发布实际的错误,它说它找不到该文件?另外,如果你的错误是在VS2010中:任何你没有直接使用解决方案文件而不是vxproj的理由? – Sagar 2013-04-09 13:39:20

+0

编译没有错误。 在源文件夹中,我有一个包含moduleA的CMakeLists.txt。在moduleA我用这个: '文件(GLOB GUIDLL_SRC “的* .h” “*的.cpp” “* .RC”) add_library(GuiDllD SHARED $ {} GUIDLL_SRC)' – uncletall 2013-04-10 01:02:29

回答

0

最后我发现了一个可以解决这个问题的编译器选项。您可以为Visual Studio 2010添加/FC标志。不确定它是否适用于VC6。要添加它使用这个:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FC") 
相关问题