当前位置: 首页 > news >正文

做网站的前景如何梧州人才网

做网站的前景如何,梧州人才网,wordpress中文下载方法,誉字号网站目录标题 基本示例Cmake传递lib给MakefileCmake传递参数给Makefile#xff0c;比如make cleanWindows下使用Cmake调用Makefile 基本示例 如果项目是使用传统的Makefile构建的#xff0c;并且您希望使用CMake调用这些Makefile#xff0c;您可以使用CMake的add_custom_target… 目录标题 基本示例Cmake传递lib给MakefileCmake传递参数给Makefile比如make cleanWindows下使用Cmake调用Makefile 基本示例 如果项目是使用传统的Makefile构建的并且您希望使用CMake调用这些Makefile您可以使用CMake的add_custom_target和add_custom_command命令来实现。 首先创建一个CMakeLists.txt文件。然后在其中使用add_custom_target和add_custom_command来调用您的原始Makefile。 现在用一共示例来说明假如有以下的项目结构 project/ ├── build/ ├── CMakeLists.txt ├── Makefile └── src/├── Makefile└── main.cc 这是一个简单的项目其中src目录包含一个main.cc文件。接下来我们需要编写两个Makefile。 在项目的根目录下创建一个Makefile 在项目的根目录下的Makefile中您可以使用$(MAKE)命令来调用src目录下的Makefile。 # project/Makefile.PHONY: allall: build_src_makefilebuild_src_makefile:$(MAKE) -C srcclean:$(MAKE) -C src clean这个Makefile现在定义了两个目标all和clean。all目标依赖于build_src_makefile目标当您在顶层目录中运行make或make all时它会调用src目录下的Makefile来构建项目。同样clean目标会调用src目录下的Makefile中的clean目标来清理构建产物。 在src目录下创建另一个Makefile # project/src/MakefileCC g CFLAGS -Wall -stdc11TARGET main SOURCES main.ccall: $(TARGET)$(TARGET): $(SOURCES)$(CC) $(CFLAGS) $(SOURCES) -o $(TARGET)clean:rm -f $(TARGET)此Makefile负责编译main.cc并生成一个名为main的可执行文件。 创建一个简单的main.cc文件 // project/src/main.cc#include iostreamint main() {std::cout Hello, world! std::endl;return 0; }确保项目根目录下的CMakeLists.txt文件包含以下内容 cmake_minimum_required(VERSION 3.10)project(MyProject)add_custom_target(build_top_level_makefileCOMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})add_custom_target(build_src_makefileCOMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}/srcWORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src)切换到build目录并运行cmake cd build cmake ..这将在build目录下生成CMake的Makefile。 在build目录下运行make make build_top_level_makefile或者直接运行 make build_src_makefile这将使用src目录下的Makefile构建项目。 运行生成的可执行文件 ../src/mainCmake传递lib给Makefile 将CMake引用的库连接到调用的Makefile中需要手动处理一些细节但这是可行的。以下是一种可能的方法 在您的CMakeLists.txt中找到和引用的库相关的信息包括库文件的路径和链接选项。例如如果您使用find_package和target_link_libraries来引用库那么您需要找到这些库的路径和链接选项。创建一个新的Makefile变量用于传递库信息给被调用的Makefile。例如您可以创建一个名为LIBS的变量并将CMake找到的库信息赋值给它。修改被调用的Makefile使其能够接收并使用从CMake传递的库信息。在Makefile中您需要使用$(LIBS)变量来添加库链接选项。 例如您的CMakeLists.txt文件可能如下所示 cmake_minimum_required(VERSION 3.10) project(MyProject)# Find your libraries using find_package or other methods find_package(YourLibrary REQUIRED)# ...add_custom_target(build_with_libsCOMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} LIBS${YourLibrary_LIBRARIES}WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})接下来修改您的Makefile以便它能够接收和使用LIBS变量。例如 # Your original Makefile content# Add the library information passed from CMake LDFLAGS $(LIBS)# ...这样当您通过CMake调用Makefile时CMake找到的库信息将被传递给Makefile并用于链接过程。 Cmake传递参数给Makefile比如make clean CMake可以通过add_custom_target和add_custom_command传递Makefile的其他参数。例如要实现make clean您可以在CMakeLists.txt中添加一个自定义目标该目标调用被传递参数的Makefile。 以下是一个在CMakeLists.txt中添加make clean自定义目标的示例 cmake_minimum_required(VERSION 3.10) project(MyProject)# ...add_custom_target(clean_makefileCOMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} cleanWORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})这将创建一个名为clean_makefile的自定义目标当您调用cmake --build . --target clean_makefile时它将在CMake当前源目录中执行make clean。 同样您可以将任何其他Makefile参数传递给自定义目标以便在CMake构建过程中使用。 Windows下使用Cmake调用Makefile 在Windows上使用CMake调用Makefile是可行的但需要考虑一些额外因素。首先Windows上没有默认的Make工具因此您需要安装GNU Make或其他Make实现。GNU Make通常可以通过安装MinGW或Cygwin获得。 然后确保将Make工具添加到系统的PATH环境变量中以便CMake可以找到并调用它。当您在Windows上使用CMake时生成的构建系统可能是Visual Studio解决方案或NMake文件。因此调用Makefile时您需要确保使用了正确的构建系统。 例如假设您已经安装了GNU Make并将其添加到了系统PATH中。在CMakeLists.txt中您可以创建一个自定义目标以便在Windows上调用Makefile cmake_minimum_required(VERSION 3.10) project(MyProject)# ...if(WIN32)add_custom_target(build_with_makefileCOMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) endif()在Windows上使用CMake生成构建文件时您可能需要指定一个生成器。例如您可以使用命令行选项-G指定生成器 cmake -G MinGW Makefiles ..这将生成适用于MinGW Make的Makefile。然后您可以使用cmake --build . --target build_with_makefile命令来调用CMakeLists.txt中定义的自定义目标进而调用您的原始Makefile。 注意Visual Studio解决方案使用MSBuild作为其构建系统而不是Make。当您在Windows上使用CMake生成Visual Studio解决方案时CMake会生成一个.sln文件和多个.vcxproj文件这些文件与MSBuild一起工作。在这种情况下直接在CMakeLists.txt中调用原始的Makefile是不合适的。 不过如果您仍然需要在Visual Studio解决方案中调用Makefile可以创建一个自定义的构建事件。您可以在Visual Studio项目属性中设置这个事件以在构建过程的某个特定阶段调用Makefile。具体操作如下 在Visual Studio中打开您的项目。右键点击项目名称选择“属性”。在“配置属性”下展开“生成事件”。在“预生成事件命令行”、“预链接事件命令行”或“后生成事件命令行”中输入执行Makefile所需的命令。例如您可以输入make -C $(ProjectDir)其中$(ProjectDir)是Visual Studio的一个宏代表项目目录的路径。点击“应用”然后点击“确定”。 现在在Visual Studio构建解决方案时将在指定的构建阶段执行Makefile。需要注意的是这种方法与CMake在很大程度上是分离的因此您可能需要手动管理库依赖关系和其他构建设置。
http://www.w-s-a.com/news/416398/

相关文章:

  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展