首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该从源文件夹中分离CMakeList.txt吗?

这个问题涉及到CMake构建系统和源代码组织的问题。CMakeList.txt是CMake构建系统的主要配置文件,它包含了构建项目所需的指令和设置。通常,CMakeList.txt文件应该位于源代码的根目录或者子目录中,以便CMake能够找到它。

在大多数情况下,您不需要从源文件夹中分离CMakeList.txt文件。这是因为CMakeList.txt文件是项目的一部分,它应该与源代码一起分发和维护。然而,在某些情况下,您可能需要从源代码中分离CMakeList.txt文件,例如:

  1. 如果您需要在多个项目中共享相同的构建设置,您可以将CMakeList.txt文件放在一个单独的目录中,并使用CMake的add_subdirectory()命令将其添加到每个项目中。
  2. 如果您的项目包含敏感信息,例如API密钥或密码,您可以将CMakeList.txt文件分离出来,以防止这些信息泄露。

总之,在大多数情况下,您不需要从源文件夹中分离CMakeList.txt文件。但是,在某些特殊情况下,这可能是必要的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

应该使用 PyCharm 在 Python 编程

选择正确的环境来编写和调试 Python 代码可能具有挑战性,但 PyCharm 是一个很好的选择,其他选项脱颖而出。 下面的文章将深入探讨PyCharm是否是你的Python编程的正确选择。...调试 - PyCharm 包含一个内置调试器,允许您单步执行代码、设置断点和检查变量,从而更轻松地查找和修复代码的错误。...版本控制集成 - PyCharm支持广泛的版本控制系统,如Git,Mercurial和SVN,使得使用存储在版本控制存储库的代码变得容易。...数据库集成 - PyCharm允许您连接到各种数据库并直接IDE使用它们,包括MySQL,PostgreSQL和Oracle等流行数据库。...但是,您是否应该使用它取决于您的特定需求和偏好。如果您不熟悉编程或更喜欢简单的文本编辑器,则可能需要从更基本的工具开始。但是,如果您正在处理大型项目或需要高级功能,PyCharm可能是您的最佳选择。

4.6K30

应该提交 vendor 目录的依赖包

vendor 目录(或者你安装依赖的其它目录)都应该被添加进 .gitignore/svn:ignore/等等。最好这么做,然后让所有开发人员使用 Composer 来安装依赖包。...在每一个依赖安装后删除其下的 .git 文件夹,然后你就可以添加它们到你的 git repo 。...你可以在 ZSH 运行 rm -rf vendor/**/.git 或者在 Bash 运行find vendor/ -type d -name ".git" -exec rm -rf {} \;。...但这意味着你在运行 composer update 命令前需要先删除磁盘的依赖文件。...通过上面的文字内容,我们知道在使用 Composer 项目的时候,我们不要把 vendor 的内容也提交到代码管理库,而应该使用 Composer 自己在运行的时候下载。

11610
  • cmake 学习笔记(一)

    建立一个任意目录(比如本目录下创建一个build子目录),在该build目录下调用cmake 注意:为了简单起见,我们从一开始就采用cmake的 out-of-source 方式来构建(即生成中间产物与源代码分离...因为的可执行程序(add_executable)占据了 hello 这个名字,所以 add_library 就不能使用这个名字了 然后,我们去了个libhello 的名字,这将导致生成的库为 libhello.lib...文件中使用 add_subdirectory 告诉cmake去子目录寻找新的CMakeList.txt 子文件 在 src 的 CMakeList.txt 文件,新增加了include_directories...我们始终用的静态库,那么用动态库应该更酷一点吧。...试着写一下 如果不考虑windows下,这个例子应该是很简单的,只需要在上个例子的 libhello/CMakeList.txt 文件的add_library命令中加入一个SHARED参数: add_library

    53110

    Android Studio中使用jni进行opencv开发的环境配置方法

    ,官网最新版,用的3.2.0; 就这两个就行了,不需要像eclipse一样手动配置jni啊adt啊一堆有的没的。...】 在CMakeList.txt增加如下条目: #项目路径和opencv路径 set(pathToProject D:/ImageProcess/JniExample) set(pathToOpenCv...\jni下的include文件夹拷贝过去,再将OpenCV-android-sdk\sdk\native下的libs文件夹拷贝过去。...(这个方法参考了某个博客,恕记性不好没法贴出来源……如果不拷贝直接使用OpenCV-android-sdk下的路径应该也是可以的) 在Gradle Scripts下应该有两个build.gradle,...节点下添加: sourceSets { main { jniLibs.srcDir(['${lib_distribution_root}/libs']) } } 如此,我们就可以在cpp文件夹添加

    1.8K20

    学习《实时Opencv处理后的Camera图像Android NDK方法》笔记

    环境搭建》已经配置好的CMakeList文件直接拷贝到src/main/cpp的文件夹下 ?...应该也是因为OpenCV的版本问题,所以我们直接把这一行删除了,对应的文件里面没有的我们就修改一下即可,如下图 ?...---- 四、修改CMakeList.txt文件 因为在cpp下面多了个两个相关的cpp的文件,所以我们要在CMakeLIst.txt的add_library中加入进来 ?...在相同的文件夹下统一加进来还有另一种写法 ?...注:这里上面的框“*.cpp”原来写的是“src/main/cpp/*.cpp”,结果各种编译不了,一直报错,后来直接写的“*.cpp”即可,原因就是我们的CMakeList文件是和这些CPP的文件在同一目录下的

    1.6K30

    Clion使用小锦集

    强烈推荐,特别是用Mac的小伙伴,接下来的文章就把在使用过程的遇到的问题和各种技巧都做个汇总 注:macOS10以后有没有自带gcc不是很清楚,小伙伴测试的时候自己试一下,如若不行就自己装一下...文件里语句的变化,方便自己调试.点了这个以后去CMakelist.txt的上面有个横幅,具体内容是啥忘记了,好像是叫自动加载,点一下 切换这个地方的源文件 点一下右上角那个然后切换就可以正常运行啦...---- 源文件分类后编译运行多个源文件 ​ 什么意思呢,就是像我的项目文件一样,把实验题,链表,引用,指针,派生类等等的源文件用文件夹的分类了,这时候就得改点东西才能让这些文件夹下的代码运行...,具体看操作 分类的文件下添加一个CMakelist.txt 添加即可,不用在这个文件下写任何东西 在项目文件夹CMakelist.txt文件添加 具体添加什么看代码 ADD_SUBDIRECTORY...-重新加载CMake项目 结语 目前在Clion的使用遇到的问题就这些,日后遇到新的问题再补充,如各位有好的技巧,欢迎评论 版权属于:奥秘Sir(除特别注明外) 本文链接:https://blog.say521

    83040

    零学习OpenCV】4Ubuntu系统安装OpenCV 4

    ,或者更换之后执行,可以根据实际情况不输入该命令。...cd build 代码的“cd”是打开或进入到某个文件夹的命令,后面接需要打开的文件夹。“mkdir”是创建文件夹的命令,后面接需要创建的文件夹的名字。...第一行命令的最后一定不要忘记有一个“..”指令,其含义是告诉编译器将要编译的文件是来自上一层文件夹CMakeList.txt文件。...首先我们需要创建一个文件夹,在文件夹创建 “CMakeList.txt”文件和“main.cpp”文件两个文件,并在文件夹复制一张名为“apple.jpg”的图片。...在“CMakeList.txt”文件内容如代码清单1-8所示。 代码清单1-8 测试工程CMakeList.txt程序 1.

    2.2K30

    构建CUDA项目二周目翻车记录

    netbeans开发的,在文件结构上要比上一个复杂的多,而且采用的是CMakeList.txt的方式,应该算比较正式的C++项目了吧。...Cuda了 尝试运行项目 构建这个项目,首先需要新建个cmake文件夹,然后进入该文件夹内,执行cmake命令,结果报错了,找不到Cuda(found 9.1),隐约感到这不是简单的路径问题,后来得到证实...时添加编译参数(参见这里),如下所示: cmake -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 常规的配置修改 修改arch参数,改为compute_50,由于是CMakeList.txt...可以看到已经编译完成了,但链接linking出错,在此,推测是原有的静态链接文件(源代码带的)并不能在的机器上正常工作,需要重新编译生成一遍,之后重新编译了ANN、Wordcloud、Cubu模块...用原来Cubu的include文件夹+新的libcubu.a,错误依旧: ? 用新的include文件夹+原来的libcubu.a,错误又会复现。基本确定是cubu重新编译的问题。

    86510

    Android利用SurfaceView显示Camera图像爬坑记(五) -- 在现有项目中加入NDK配置

    前言 前面几章我们已经把SurfaceView加载Camera实现实时帧显示图像完成了,也说过,我们加载实时图像是为了对接OpenCV进行图像处理所以才生成的Bitmap图像。...《OpenCV4AndroidNDK开发(一)--- OpenCV4.1.0环境搭建》这篇我们是新建的项目中直接选择了包含C++,本篇主要是介绍怎么在现在的项目加改为使用JNI的方式。...实现方式 添加CPP的相关文件夹和文件 首先在我们项目的目录app/src/main下建立一个cpp的文件夹 ? 进入cpp目录下我们把别的项目中的CMakeList.txt文件拷贝过来 ?...如果没有配置的可以自己新建一个CMakeList.txt,下面是CMakeList.txt的配置,这个配置是直接关联我们的OpenCV库的,取自《OpenCV4AndroidNDK开发(一)--- OpenCV4.1.0...${log-lib}) 然后我们在cpp文件夹下再建一个native-lib.cpp的文件,这个文件名主要是根据CMakeList.txt里面配置相同的,我们也可以改别的名,不过CMakeList.txt

    92720

    Ubuntu下编译Opencv4.0及opencv_contribute模块步骤详解

    ,更换为阿里 deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties...进入 opencv-4.0.1 文件夹,新建一个 build 文件夹,用于存放编译过程中产生的文件 cd opencv-4.0.1 mkdir build cd build 在 build 文件夹编译...:表示CMakeList.txt在上级目录,命令最后的 .....不能够省略,否则会出现找不到CMakeList.txt 等待 cmake 完成...... cmake 执行过程需要下载一些压缩包,可能由于网络原因下载不下来,导致出错,这时可以删除 build 文件夹下的内容...进入build 文件夹,编译测试程序 cd build cmake .. make ? 查看并运行生成的可执行文件 在 build 文件夹存放一张名为 1.jpeg 的图片进行测试 ls .

    6.1K30

    ubuntu18.04 LTS安装ROS图文教程「建议收藏」

    大家好,又见面了,是你们的朋友全栈君。...找到‘软件和更新’,修改里面的下载。点击桌面的ubuntu软件图表,然后在左上角ubuntu软件上点击左键,选择软件和更新,如下图所示 2。...设置sources.list(设置软件),将电脑设置为可以http://packages.ros.org接收软件 国外的:(该教程使用的着一种,最后可以执行成功) sudo sh -c 'echo...安装rosinstall,rosinstall是一种常用的命令行工具 到这一步,应该已经安装好了运行核心 ROS 包的所有东西。...如果你查看一下当前目录应该能看到’build’和’devel’这两个文件夹。在’devel’文件夹里面你可以看到几个setup.*sh文件。接下来首先source一下新生成的setup.

    1.2K10

    .NET 源代码自动生成

    处理规则是对于一个特定的命令,应该总是只有一个处理程序。如果希望将消息发送给许多订阅者,则应该使用MediatR的内置通知功能,但在本例我们将不使用该功能。...它要求我们应该将系统的命令(写)的实现与查询(读)分离开来。...但是,如果仅仅基于Command/Query,我们就可以生成API代码作为编译的一部分,这不是很酷?...查看项目文件,以了解该项目如何引用生成器。 Templates这个文件夹包含Command和Query类的模板。源代码生成器将把生成的代码插入到这些模板。...通过将这些行添加到API项目文件,我们可以告诉编译器将生成的源代码写到我们选择的文件夹: True</EmitCompilerGeneratedFiles

    18310

    cmake快速入门「建议收藏」

    大家好,又见面了,是你们的朋友全栈君。 简介 cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。...想,这恐怕是刚刚接触软件项目的人最应该问的问题之一了。 “Hello, world!“这个最经典的程序相信我们每个人都写过。无论在什么平台下,编译和运行这个程序都仅需要非常简单的操作。...看到这里,也许你会想到makefile,makefile不就是管理代码自动化编译的工具?为什么还要用别的构建工具?...三、安装cmake 几乎所有主流的Linux发行版的中都包含有cmake的安装包,直接添加即可。当然,也可以在官方网站下载源代码自行编译安装。...第二步, 项目的根目录CmakeList.txt 在项目的根目录创建 CmakeList.txt : 01 PROJECT(main) 02 CMAKE_MINIMUM_REQUIRED(VERSION

    1.2K60

    10.YOLO系列及如何训练自己的数据。

    YOLOV3是在TX2上跑过的:YOLOV3-TX2跑起来,而且YOLO是有简化版本的模型的,对于简单应用应该是够了。...装系统的话就不多说了,win10下装ubuntu的话大概以下几个步骤: ①win的系统盘右键压缩出来50G(有的话可以再多点)的未分配的空间。...③重启,进bios,u盘启动,顺便把电脑的网断了(拔掉网线或者关闭wifi),然后安装,不要选择安装更新,并且自己分配空间,就从刚才win10上压缩的未分配空间来分配。...cd opencv-3.4.1 #解压的文件 mkdir build #创建build文件夹 cd build #进入build文件夹 cmake...mkdir opencv_cpp #建立一个文件夹: gedit lena.cpp #建立测试文件 gedit CMakelist.txt  #建立CMakeLists文件 cmake

    1.7K20

    你的分层架构还好吗?

    分层架构,不就是建文件夹的艺术? 注:本文更适用于中大型项目,小项目开心就好了。因为时代的原因,对部分词汇描述可能不是那么准确,欢迎指正。 当我们开始一个新的项目,我们就开始创建一个个折文件夹。...但是,我们都不应该依赖于低层模块,于是就有了……。 关注点分离:针对接口编程 我们看到了整洁架构: ?...那么抽象在你的 domain ,具体的 RepositoryImpl 实现是在你的基础设施。 离心分离模型 ?...转而,开始考虑一个问题,当个包(文件夹)下的文件数是否不应该超过一定的数量? 如果一个包下的类数,超过一定的范围,那么我们应该考虑是否存在职责相似的类。 这部分可以参考上一部分的离心分离模型。...一旦你项目中拆出了一个 common 模块,那只会有一个结果,你将得到一个 5G 时代的 jar 包。甚至于,你看到有一块代码在 IDE 是灰色的、未使用的,你也不敢轻易去删除这些代码。

    1.2K20

    Android NDK编程(二)---CMakeList.txt详解

    前言 前一篇我们介绍了《Android NDK编程(一)---NDK介绍及环境搭建》,简单介绍了一下什么是NDK和JNI,以前NDK环境的配置及怎么创建第一个NDK的程序,在上一篇的左侧栏中有一个CMakeList.txt...CmakeList.txt #cmake的最低版本 cmake_minimum_required(VERSION 3.6) # ${ANDROID_ABI} 构建的COU # ${CMAKE_SOURCE_DIR...} cmakeList.txt所在的文件夹路径 # message("","") 相当于log # add_subdirectory(路径) 引入路径下的 cmakeList # 源文件 最终生成的...CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}") #设置动态依赖库2 会...ndk的platforms/android-21/arch-arm/usr/lib/ 查找log库 并赋值给log_lib find_library( log-lib log ) # 为了确保

    3.3K32

    cmake:在各级子项目(目录)之间共享变量

    项目目录结构如下图,facedetect和facefeature都要用到opencl的include文件,1.2,2.0,2.1是不同的opencl版本的头文件,希望在cmake创建Makefile时...,opencl文件夹下的CMakeLists.txt能定义类似INCLUDE_OPENCL_1_2,INCLUDE_OPENCL_2_0,INCLUDE_OPENCL_2_1,这样的变量,以保存不同版本的...opencl 头文件位置,最后关键是能让项目中其他子目录的CMakeList.txt能使用这些变量。...workspace/facecl.prj/lib 方法二 set_property/get_property: 使用set_property实现共享变量的方法,不会将变量写入CMakeCache.txt,应该是内存实现的...总结: 两种方法相比,使用便利性角度,方法一好一些,但方法一将变量保存在CMakeCache.txt,需要读写CMakeCache.txt文件,目前没有发现别的副作用,但记住这个区别是有好处的。

    1.8K40
    领券