Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake没有正确地将Boost包含在Linux中_Boost_Cmake - Fatal编程技术网

CMake没有正确地将Boost包含在Linux中

CMake没有正确地将Boost包含在Linux中,boost,cmake,Boost,Cmake,我正在使用CMake在Windows和Linux上构建一个项目。 我的CMake脚本正确地生成了Visual Studio解决方案,但在Linux上,我在生成boost include文件时出错 错误 hab@hab-VirtualBox:/media/sf\u GitHub/corona/experimental/MakefileParser$make install [14%]构建CXX对象MakefileParser/src/CMakeFiles/LibMakefileParser.di

我正在使用CMake在Windows和Linux上构建一个项目。 我的CMake脚本正确地生成了Visual Studio解决方案,但在Linux上,我在生成boost include文件时出错


错误 hab@hab-VirtualBox:/media/sf\u GitHub/corona/experimental/MakefileParser$make install [14%]构建CXX对象MakefileParser/src/CMakeFiles/LibMakefileParser.dir/lex.yy.c.o makefile.l:11:33:致命错误:boost\filesystem.hpp:没有这样的文件或目录 #包括“boost\filesystem.hpp” ^ 编译终止。 make[2]:*[MakefileParser/src/CMakeFiles/LibMakefileParser.dir/lex.yy.c.o]错误1 make[1]:*[MakefileParser/src/CMakeFiles/LibMakefileParser.dir/all]错误2 make:**[全部]错误2

========================================================================

CMakeList.txt

SET (INCLUDES
    "${PROJECT_SOURCE_DIR}/include/Config.h"
    "${PROJECT_SOURCE_DIR}/include/defines.hpp"
    "${PROJECT_SOURCE_DIR}/include/Expansion.h"
    "${PROJECT_SOURCE_DIR}/include/MakefileParser.h"
    "${PROJECT_SOURCE_DIR}/include/StringUtils.h"
)

SET (SOURCES
    "lex.yy.c"
    "makefile.tab.h"
    "Expansion.cpp"
    "MakefileParser.cpp"
    "StringUtils.cpp"
)

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/ext/boost_1_60_0_Lite")
LINK_DIRECTORIES("${PROJECT_SOURCE_DIR}/ext/boost_1_60_0_Lite/stage/lib")

ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES} ${INCLUDES})

SET_TARGET_PROPERTIES (${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)

SET_SOURCE_FILES_PROPERTIES("lex.yy.c" PROPERTIES LANGUAGE CXX )

if(WIN32)
    INSTALL(TARGETS ${PROJECT_NAME} 
    RUNTIME DESTINATION bin)
else()
    INSTALL(TARGETS ${PROJECT_NAME} 
    LIBRARY DESTINATION lib
    COMPONENT library)
endif()

SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} 

POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory "${LIBRARY_OUTPUT_PATH}/$<CONFIGURATION>" ${EXECUTABLE_OUTPUT_PATH}/$<CONFIGURATION>

)
SET(包括
“${PROJECT\u SOURCE\u DIR}/include/Config.h”
“${PROJECT\u SOURCE\u DIR}/include/defines.hpp”
“${PROJECT\u SOURCE\u DIR}/include/Expansion.h”
“${PROJECT\u SOURCE\u DIR}/include/MakefileParser.h”
“${PROJECT\u SOURCE\u DIR}/include/StringUtils.h”
)
设置(源)
“法律yy.c”
“makefile.tab.h”
“扩展.cpp”
“MakefileParser.cpp”
“StringUtils.cpp”
)
包含目录(${PROJECT\u SOURCE\u DIR}/INCLUDE)
包括目录(${PROJECT\u SOURCE\u DIR}/ext/boost\u 1\u 60\u 0\u Lite”)
链接目录(${PROJECT\u SOURCE\u DIR}/ext/boost\u 1\u 60\u 0\u Lite/stage/lib)
添加库(${PROJECT\u NAME}共享${SOURCES}${INCLUDES})
设置\u目标\u属性(${PROJECT\u NAME}属性链接器\u语言CXX)
设置源文件属性(“lex.yy.c”属性语言CXX)
如果(WIN32)
安装(目标${PROJECT\u NAME}
运行时目标箱)
else()
安装(目标${PROJECT\u NAME}
库目标库
组件库)
endif()
集合(库\输出\路径${PROJECT\源\目录}/lib)
添加自定义命令(目标${PROJECT\u NAME}
后期构建
COMMAND${CMAKE\u COMMAND}-E copy\u目录“${LIBRARY\u OUTPUT\u PATH}/$”${EXECUTABLE\u OUTPUT\u PATH}/$
)
有人遇到过这样的问题吗?
提前谢谢

boost\filesystem.hpp
看起来像windows文件路径,应该是
boost/filesystem.hpp
在Linux中您应该使用FindBoost,这使得它更容易在多个系统上工作。是的!成功了。谢谢。我会用FindBoost试试