add_include_path
时间: 2024-09-11 22:12:13 浏览: 14
`add_include_path()` 是PHP中用于配置脚本引擎在运行时查找包含文件的路径的一个函数。这个函数通常在php.ini配置文件中设置,或者通过ini_set()函数在运行时动态设置。当你在脚本中使用`require`或`include`来包含一个文件时,PHP会在包含路径列表中搜索这个文件。
例如,如果你的项目中有一个库文件存放在非默认的目录下,你需要把这个目录添加到include路径中,这样PHP才能找到并加载这个库文件。使用`add_include_path()`可以动态地改变或添加这个路径,而不是修改php.ini文件。
使用方法如下:
```php
// 动态添加一个路径到当前的include_path中
add_include_path('/path/to/add');
// 重置include_path,只包含指定的路径
add_include_path('/path/to/add');
```
需要注意的是,使用`add_include_path()`添加的路径仅对当前脚本的执行环境有效。在脚本执行完毕后,这个设置不会被保留。如果你希望永久改变include路径,需要修改php.ini文件,并重启Web服务器。
相关问题
target_include_directories
target_include_directories 是 CMake 中用于指定目标(target)包含的头文件路径的命令。它可以用于将头文件路径添加到编译器的 include 路径中,以便在编译源代码时能够找到所需的头文件。该命令可以在 CMakeLists.txt 文件中使用,常见的用法为:
```
target_include_directories(target_name PUBLIC path/to/include)
```
其中,target_name 是需要添加头文件路径的目标的名称,path/to/include 是需要添加的头文件路径。PUBLIC 关键字表示该头文件路径不仅适用于目标本身,也适用于该目标的用户。
例如,以下 CMakeLists.txt 文件中,将 myapp 目标的 include 目录设置为 include 目录:
```
cmake_minimum_required(VERSION 3.0)
project(myapp)
add_executable(myapp main.cpp)
target_include_directories(myapp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
```
其中,main.cpp 文件需要包含一个头文件 header.h,而该头文件位于 include 目录下。因此,在 CMakeLists.txt 文件中,使用 target_include_directories 命令将 include 目录添加到 myapp 目标的 include 路径中,以便在编译时能够找到 header.h。
cmake_minimum_required(VERSION 2.8.3) project(ego_planner) set(CMAKE_BUILD_TYPE "Release") ADD_COMPILE_OPTIONS(-std=c++11 ) ADD_COMPILE_OPTIONS(-std=c++14 ) set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g") find_package(Eigen3 REQUIRED) find_package(PCL 1.7 REQUIRED) find_package(catkin REQUIRED COMPONENTS roscpp std_msgs geometry_msgs quadrotor_msgs plan_env path_searching bspline_opt traj_utils message_generation cv_bridge ) # catkin_package(CATKIN_DEPENDS message_runtime) catkin_package( INCLUDE_DIRS include LIBRARIES ego_planner CATKIN_DEPENDS plan_env path_searching bspline_opt traj_utils # DEPENDS system_lib ) include_directories( include SYSTEM ${catkin_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/include ${EIGEN3_INCLUDE_DIR} ${PCL_INCLUDE_DIRS} ) add_executable(ego_planner_node src/ego_planner_node.cpp src/ego_replan_fsm.cpp src/planner_manager.cpp ) target_link_libraries(ego_planner_node ${catkin_LIBRARIES} ) #add_dependencies(ego_planner_node ${${PROJECT_NAME}_EXPORTED_TARGETS}) add_executable(traj_server src/traj_server.cpp) target_link_libraries(traj_server ${catkin_LIBRARIES}) #add_dependencies(traj_server ${${PROJECT_NAME}_EXPORTED_TARGETS})
这段代码是一个 CMakeLists.txt 文件,用于编译一个名为 ego_planner 的工程。该工程依赖于 Eigen3 和 PCL 库,同时也依赖于一些 ROS 的组件,如 roscpp、std_msgs、geometry_msgs、quadrotor_msgs、plan_env、path_searching、bspline_opt、traj_utils 和 message_generation。该工程包含两个可执行文件,一个是 ego_planner_node,另一个是 traj_server。其中 ego_planner_node.cpp 是主程序,它包含了 ego_replan_fsm.cpp 和 planner_manager.cpp 两个文件。traj_server.cpp 是用于生成轨迹的服务器程序。在编译过程中,使用了 C++11 和 C++14 标准,同时开启了 Release 模式。