cmakeCMakeList添加库添加头文件添加路径addexecutableaddlibrarytargetlink

add_library(生成库),target_link_libraries(生成目标连接的库),set_target_properties

CMAKE添加编译选项|-g编译参数/选项

包含文件的的目录include_directories

CMake设置编译参数/选项

如何在cmakelists中加入-ldl编译选项

CMake指定gcc,g++版本编译

CMake关闭警告的方法

关闭编译器优化

Debug和Release方案

Abouttable

Aboutquestion

CMakeLists实现动态宏开关

去掉编译优化

CMake--List用法

CmakeLists.txt单行注释和多行注释

Search—CMake3.22.0-rc1Documentation

生成一个可执行程序的CMakeList

#添加包含文件的的目录

include_directories(${cppzmq_INCLUDE_DIR})

#用${SOURCE_FILES}指定的文件,生成可执行文件sample_project

add_executable(sample_project${SOURCE_FILES})

#生成可执行文件sample_project需要连接${CMAKE_THREAD_LIBS_INIT}指定的库

target_link_libraries(sample_project${CMAKE_THREAD_LIBS_INIT})

生成一个.so动态库的CMakeList

#用${SRC_LISTS}指定的所有的源文件生成一个库,名字叫libsugan

add_library(libsugan${SRC_LISTS})

#生成libsugan库需要链接${OpenCV_LIBS}、${PROJECT_SOURCE_DIR}/lib/libCommonUtilities.so、${PROJECT_SOURCE_DIR}/lib/libInuStreams.so

target_link_libraries(libsugan

${OpenCV_LIBS}

${PROJECT_SOURCE_DIR}/lib/libCommonUtilities.so

${PROJECT_SOURCE_DIR}/lib/libInuStreams.so

)

原文;cmake之生成动态库-mohist-博客园

│CMakeLists.txt

│index.txt

├─build

├─include

│hello.h

│hi.h

└─src

hello.cxx

hi.cxx

cmake_minimum_required(VERSION3.1)

#项目名

project(libhello)

#1、指定库的目录变量

set(libhello_srcsrc/hello.cxx)

#指定头文件搜索路径

include_directories("${PROJECT_SOURCE_DIR}/include")

#2、添加库(对应的两个项目)

add_library(hello_sharedSHARED${libhello_src})

add_library(hello_staticSTATIC${libhello_src})

#按照一般的习惯,静态库名字跟动态库名字应该是一致的,只是扩展名不同;

#即:静态库名为libhello.a;动态库名为libhello.so;

#所以,希望"hello_static"在输出时,不是"hello_static",而是以"hello"的名字显示,故设置如下

#SET_TARGET_PROPERTIES(hello_staticPROPERTIESOUTPUT_NAME"hello")

#3、cmake在构建一个新的target时,会尝试清理掉其他使用这个名字的库,

#因此,在构建libhello.a时,就会清理掉libhello.so.

#为了回避这个问题,比如再次使用SET_TARGET_PROPERTIES定义CLEAN_DIRECT_OUTPUT属性。

SET_TARGET_PROPERTIES(hello_staticPROPERTIESCLEAN_DIRECT_OUTPUT1)

SET_TARGET_PROPERTIES(hello_sharedPROPERTIESCLEAN_DIRECT_OUTPUT1)

#4、按照规则,动态库是应该包含一个版本号的,

#VERSION指代动态库版本,SOVERSION指代API版本。

SET_TARGET_PROPERTIES(hello_staticPROPERTIESVERSION1.1SOVERSION1)

SET_TARGET_PROPERTIES(hello_sharedPROPERTIESVERSION1.1SOVERSION1)

#5、若将libhello.a,libhello.so.x以及hello.h安装到系统目录,才能真正让其他人开发使用,

#本例中,将hello的共享库安装到/lib目录;

#将hello.h安装/include/hello目录。

#INSTALL(TARGETShellohello_sharedLIBRARYDESTINATIONlibARCHIVEDESTINATIONlib)

#INSTALL(TARGETShellohello_staticLIBRARYDESTINATIONlibARCHIVEDESTINATIONlib)

#INSTALL(FILEShello.hDESTINATIONinclude/hello)

xxx/to/path

cdbuild

cmake..

mac没有电了,来个Windows10的截图吧:

若需要指定输出路径,尝试下面的示例指令:

#设置VS会自动新建Debug和Release文件夹

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY${CMAKE_BINARY_DIR}/Lib)

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY${CMAKE_BINARY_DIR}/Lib)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY${CMAKE_BINARY_DIR}/Bin)

#设置分别设置Debug和Release输出目录

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG${CMAKE_BINARY_DIR}/Lib)

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG${CMAKE_BINARY_DIR}/Lib)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG${CMAKE_CURRENT_SOURCE_DIR}/../../build/Debug)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE${CMAKE_BINARY_DIR}/Lib)

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE${CMAKE_BINARY_DIR}/Lib)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE${CMAKE_CURRENT_SOURCE_DIR}/Bin)

简单例子:

一、生成.so共享库文件

下面是我的几个文件:

1hello.cpp

//hello.cpp

intCalculate_sum_Of_Two_Number(intx,inty)

{

intz=0;

z=x+y;

return(z);

}

2hello.hpp

//hello.hpp

#ifndef__HELLO_H

#define__HELLO_H

intCalculate_sum_Of_Two_Number(intx,inty);

#endif

3main.cpp

//main.cpp

#include"hello.hpp"

#include

intmain(void)

inta=0,b=0,c=0;

printf("pleaseinputtwoparameter:");

scanf("%d",&a);

scanf("%d",&b);

c=Calculate_sum_Of_Two_Number(a,b);

printf("thesumis:%d",c);

return0;

4CMakeLists.txt

#要求的Cmake最低版本

CMAKE_MINIMUM_REQUIRED(VERSION2.8)

#工程名称

PROJECT(main)

#设置编译器编译模式:

set(CMAKE_BUILD_TYPE"Debug")

#生成共享库

#getthesharedpackage

#hereneedsno.hpp

add_library(calculate_sharedSHAREDhello.cpp)

#生成可以执行的文件

add_executable(mainmain.cpp)

#连接共享库

target_link_libraries(maincalculate_shared)

上面CmakeLists.txt里面,共享库的名称是calculate_shared,这个是我们可以自己更改的。生成的可执行文件是main,这个名称也是可以更改的。

不过需要注意的是,hello.cpp里面不用在包含hello.hpp了。(汗,因为这个导致出错,提示说是重复定义函数了);

编译生成:

mkdirbuild

make

我们就可以看到build生成了如下的文件:

CMakeCache.txtcmake_install.cmakemain

CMakeFileslibcalculate_shared.soMakefile

libcalculate_shared.so就是生成的共享库文件。

他们的路径是:/home/fan/dev/cmake/4-exer/

下面有build文件夹,以及main.cpp,hello.cpp,hello.hpp,

build文件夹下面有共享库libcalculate_shared.so.so

二、调用共享库文件

所有的外部依赖库都是这样的,比如opencv,openni,eigen等等,原理是一样的,只不过他们已经安装在系统里面了,可以查找,而这个则是需要我们自己去配置。

即我上面生成的共享库文件本质上和opencv的库是相同的。只不过这个共享库需要自己手动配置。

比如我又新建了一个工程,需要调用上面的共享库libcalculate_shared.so。

main.cpp如下:

#include

usingnamespacestd;

intx=2,y=3;

z=Calculate_sum_Of_Two_Number(x,y);

cout<<"theresultis:"<

那么在CMakeLists.txt里面,我需要告诉CMake,这个头文件可以在哪里找到,头文件所定义的函数又可以在哪里找到。

上面hello.hpp的路径是:/home/fan/dev/cmake/4-exer/hello.hpp

libcalculate_shared.so的路径是/home/fan/dev/cmake/4-exer/build/libcalculate_shared.so

则CMakeLists.txt如下:

SET(CMAKE_BUILD_TYPE"Debug")

SET(HELLO_INCLUE

/home/fan/dev/cmake/4-exer/)

SET(HELLO_SRC

/home/fan/dev/cmake/4-exer/build/libcalculate_shared.so)

INCLUDE_DIRECTORIES(${HELLO_INCLUE})

target_link_libraries(main${HELLO_SRC})

这里要注意一些细节(对于我这个渣渣来说的)

1、${}这种形式代表一个变量,比如上面的,HELLO_INCLUE,就是我自己定义的一个变量。

2、头文件包含到头文件所在的文件夹,即/home/fan/dev/cmake/4-exer/

3、共享库要指明具体的共享库,精确到.so

其实主要的就是指明这个调用这个共享库的时候,使用的头文件,以及共享库本身所在的位置,然后包含链接就可以了。

安装过的共享库(例如opencv)就不用这么麻烦了,因为它的地址都放在了变量里面。

Opencv的依赖添加

比如Opencv,它的头文件和.so文件都已经放在了系统变量里面,不用向上面自己定义了(上面例子里面的头文件和共享库文件的地址都是我自己设置的)

它的CMakeLists.txt如下:

find_package(OpenCVREQUIRED)

include_directories(${OPENCV_INCLUDE_DIRS})

target_link_libraries(MAIN${OpenCV_LIBS})

只需要查找就可以了,OpenCV_LIBS和OPENCV_INCLUDE_DIRS都是系统帮我们已经定义好的,所以比较容易

参考博客:

add_library(libsugan${SRC_LISTS})#用${SRC_LISTS}生成静态库libsugan

target_link_libraries(libsugan#生成静态库libsugan还需链接依赖库${OpenCV_LIBS}…

#上面的配置生成名字为libsugan的静态库,但Linux下对库的存储格式是lib+name.a,所以库libsugan存储出来的结果就是liblibsugan.a,看着很别扭。用下面这句,保证了存储出来的静态库叫做libsugan.a:

set_target_properties(libsuganPROPERTIESOUTPUT_NAME"sugan")

#但是请千万注意,在整个CmakeLists.txt里

#如果想链接生成的这个库必须使用“add_library(libsugan${SRC_LISTS})”指明的名字。

add_executable(demo./src/main.cpp)

target_link_libraries(demolibsugan)

原例子:

add_library,target_link_libraries,set_target_properties,target_link_libraries使用联系_michaelhan3的博客-CSDN博客

#工程名字

project(Camera_sugan)

#编译最低cmake版本

cmake_minimum_required(VERSION2.6)

#设置c++编译器

set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-std=c++11")

#在整个电脑上找opencv包

#包含头文件路径

include_directories(

./include/inudev/

./src/

#将所有的源文件列为一个集合,集合名字叫做SRC_LISTS

set(SRC_LISTS

./src/inuitive.cpp

./src/runCamera_Qfeeltech.cpp

#将集合里的所有的源文件生成一个静态库,该静态库的名字libsugan,

注意,在整个CmakeLists里都要用libsugan这个

#名字来代替之前那个集合生成的库。

target_link_libraries(libsugan#链接静态库需要的依赖库

add_definitions和add_compile_options,二者添加的编译选项是针对所有编译器的(包括c和c++编译器)。

add_definitions和add_compile_options的区别是:

add_definitions可用于添加任何标志,但旨在添加预处理器定义。

此命令已被替代方案取代:

使用add_compile_definitions()添加预处理器定义。

使用include_directories()添加包含目录。

使用add_compile_options()添加其他选项。

add_definitions—CMake3.22.0-rc1Documentation

添加-g编译参数/选项

方法一:add_definitions("-g")/add_compile_options

在文件CMakeLists.txt添加下面一条语句

add_definitions("-g")

添加其他编译参数/选项

例如下面的代码

#判断编译器类型,如果是gcc编译器,则在编译选项中加入c++11支持

if(CMAKE_COMPILER_IS_GNUCXX)

add_compile_options(-std=c++11)

message(STATUS"optional:-std=c++11")

endif(CMAKE_COMPILER_IS_GNUCXX)

使用add_compile_options添加-std=c++11选项,是想在编译c++代码时加上c++11支持选项。但是因为add_compile_options是针对所有类型编译器的,所以在编译c代码时,就会产生如下warning

J:\workspace\facecl.gcc>makeb64

[50%]BuildingCobjectlibb64/CMakeFiles/b64.dir/libb64-1.2.1/src/cdecode.c.obj

cc1.exe:warning:commandlineoption‘-std=c++11’isvalidforC++/ObjC++butnotforC

[100%]BuildingCobjectlibb64/CMakeFiles/b64.dir/libb64-1.2.1/src/cencode.c.obj

LinkingCstaticlibrarylibb64.a

[100%]Builttargetb64

虽然并不影响编译,但看着的确是不爽啊,要消除这个warning,就不能使用add_compile_options,而是只针对c++编译器添加这个option。

方法二:set

所以如下修改代码,则警告消除。

set(CMAKE_CXX_FLAGS"-std=c++11${CMAKE_CXX_FLAGS}")

include_directories(${cppzmq_INCLUDE_DIR})//添加包含文件的的目录

而set命令设置CMAKE_C_FLAGS或CMAKE_CXX_FLAGS变量则是分别只针对c和c++编译器的

对c编译器的

set(CMAKE_C_FLAGS"-O3-fopenmp-fPIC-Wno-deprecated-Wenum-compare-std=c++14")

针对c++编译器的

set(CMAKE_CXX_FLAGS"-O3-fopenmp-fPIC-Wno-deprecated-Wenum-compare-std=c++14")

cmakelists.txt中,在增加可执行程序后增加TARGET_LINK_LIBRARIES

eg:

add_executable(xx${ALL_F}${WE_F})

TARGET_LINK_LIBRARIES(dl)

TARGET_LINK_LIBRARIES(m)

set(CMAKE_C_FLAGS"-ldl")

在add_executable(${PROJECT_NAME}"main.cpp")后面添加

target_link_libraries(${PROJECT_NAME}dl)

target_link_libraries(exe1-Wl,--whole-archivelib1-Wl,-no-whole-archive)

系统默认的gcc/g++在/usr/bin目录下。

我们升级安装的gcc目录在/usr/local/bin目录下,现在我们希望使用升级后的gcc。

通过百度搜索出来的结果,大多是如下操作:

在CMakeLists.txt中调用编译器之前添加:

1

2

SET(CMAKE_C_COMPILER"/usr/local/bin/gcc")

SET(CMAKE_CXX_COMPILER"/usr/local/bin/g++")

然而经过本人亲自实践,该方法不起作用,正确的做法是:

执行cmake命令之前,在shell终端先设置如下两个变量:

exportCC=/usr/local/bin/gcc

exportCXX=/usr/local/bin/g++

然后再执行cmake等后续命令,这样就可以用指定的编译器版本了。

【已解决】CMake指定gcc,g++版本编译|勤奋的小青蛙

在CMakeLists.txt中添加add_definitions(-w)

应用于单个target

if(CMAKE_COMPILER_IS_GNUCC)

target_compile_options(mainPRIVATE"-Wall")

endif()

if(MSVC)

target_compile_options(mainPRIVATE"/W4")

应用于所有target

set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-Wall")

set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}/W4")

注意:为GCC或/WX添加-Werror以便MSVC将所有警告视为错误。这会将所有警告视为错误。这对于新项目来说可以方便地执行严格的警告。

另外,-Wall并不意味着"所有错误";从历史意义上讲,它意味着"每个人都可以达成一致的所有错误""。从-Wall-Wextra开始,然后仔细阅读您的版本的GCC手册,并找到else编译器可以为您提供关于警告的信息。

(未验证)

1)add_compile_options(-fno-elide-constructors)#关闭编译器优化

2)set(CMAKE_CXX_FLAGS"-fno-elide-constructors${CMAKE_CXX_FLAGS}")

Configurationsintermsofgcc/clangcompilers(CMake3.4.1):

Debug:-g

Release:-O3-DNDEBUG

RelWithDebInfo:-O2-g-DNDEBUG

MinSizeRel:-Os-DNDEBUG

Itmeans:

+---------------+--------------+--------------+----------+

||optimization|assertworks|stripped|

+---------------+--------------+--------------+----------|

|Debug|no|yes|no|

|Release|full|no|yes|

|RelWithDebInfo|good|no|no|

|MinSizeRel|size|no|yes|

AsfarasIunderstandyouwantnoextraflagsatall(no-g,-O*or-DNDEBUG).ForMakefile-likegenerators:

>cmake-H.-B_builds-DCMAKE_BUILD_TYPE=MyConf-DCMAKE_CXX_FLAGS_MYCONF=""

>cmake--build_builds

在CMakeList中添加:

if(NOTCMAKE_BUILD_TYPE)

set(CMAKE_BUILD_TYPERelease)

endif()

set(CMAKE_CXX_FLAGS"-Wall-Wextra")

set(CMAKE_CXX_FLAGS_DEBUG"-g")

set(CMAKE_CXX_FLAGS_RELEASE"-O3")

执行的时候

cmake-DCMAKE_BUILD_TYPE=Release

也可以在上一层(调用本CMakeList.txt的)的CMakeList.txt中添加下面:

option(CMAKE_BUILD_TYPE"Usetutorialprovidedmathimplementation"ON)

表示启用CMAKE_BUILD_TYPE宏。

option(CMAKE_BUILD_TYPE"Usetutorialprovidedmathimplementation"OFF)#表示关

参考:

c++-OptimizeinCMakebydefault-StackOverflow

debugging-Howtocompilewithoutoptimizations-O0usingCMake-Unix&LinuxStackExchange

例子

最近在工作中需要通过一份C代码控制逻辑走向,网上找了一下资料,发现可以通过在CMakeLists文件中动态定义宏开关,从而能够达到编译出不同逻辑流的代码。

具体步骤:

首先,我在src代码里编写了若干debug的输出:

#IFDEFDEBUG

someprintcommand;

#ENDIF

然后,在CMakeLists文件中添加DEBUG的定义:

IF(CMAKE_BUILD_TYPESTREQUALDEBUG)

ADD_DEFINITIONS(-DDEBUG)

ENDIF()

最后,在cmake的时候设置参数-DCMAKE_BUILD_TYPE为DEBUG:

$cmake..-DCMAKE_BUILD_TYPE=DEBUG

$make-j4

这样再运行可执行文件时就会打印出someprintcommand的debug信息了。如果不想看到debug信息,只需在参数中不设置DEBUG参数,或者将DEBUG参数设置为其它值即可(以下两种方式二者选其一):

$cmake..

$cmake..-DCMAKE_BUILD_TYPE=RELEASE

到此CMakeLists实现动态宏开关介绍完成。

CMake--List用法-narjaja-博客园

单行注释:使用“#”

多行注释:使用“#[[]]”

————————————————

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

THE END
1.java怎么添加referencedLibariesjava怎么添加referenced Libaries 项目方案:如何在Java项目中添加Referenced Libraries 在Java项目中,添加Referenced Libraries是非常常见的操作,它可以让我们引入其他的类库或者第三方库来扩展项目的功能。本文将介绍在Eclipse中如何添加Referenced Libraries,并提供一份具体的代码示例。https://blog.51cto.com/u_16175488/11320106
2.关于Eclipse和IDEA导入library库文件的步骤4、然后就可以看到这样的界面,中间界面 多了一个library文件夹 5、接着点击最右边界面的绿色加号按钮 选择第三个Module Dependency,注意中间部分要选择你要导入library库文件的目录,即此时在中间界面选中demo文件夹,在按绿色按钮添加 6、可以看到有library文件夹可以选择 选择OK就行了 然后OK 结束设置 https://cloud.tencent.com/developer/article/1130388
3.eclipse怎么添加自定义jar包Librarieseclipse怎么添加自定义jar包Libraries 简介 在进行使用eclipse的软件进行开发情况下,就需要自己自定义来添加jar的文件,那么在eclipse中是怎么进行添加自定义jar包Libraries文件,eclipse中来jar目录的文件。工具/原料 eclipse 方法/步骤 1 打开了eclipse界面窗口之后,进行点击菜单中的windows的菜单。2 弹出了下拉菜单中进行https://jingyan.baidu.com/article/49711c61967128fa441b7ca1.html
4.blog.csdn.net/fengbingchun/article/details/1281607771.Normal Libraries:添加一个名为<name>的库目标(librarytarget),从命令调用中列出的源文件构建。<name>对应于逻辑目标名称,并且在项目中必须是全局唯一(globally unique)的。构建的库的实际文件名是基于本机平台(native platform)的约定构建的(例如lib<name>.a或<name>.lib). https://blog.csdn.net/fengbingchun/article/details/128160777
5.eclipse中libraries添加jdk的方法是什么问答在Eclipse中添加JDK作为库的方法如下:1. 打开Eclipse,点击工具栏上的“Window”(窗口)按钮。2. 在下拉菜单中选择“Preferences”(首选项)。3. 在弹出的对话框中,https://www.yisu.com/ask/68255155.html
6.可添加到CreativeCloudLibraries的文件和格式的类型在大多数 Creative Cloud 桌面产品、移动应用程序中或 Web 上使用 Creative Cloud Libraries 添加资源,然后可在其他 Adobe 应用程序中访问这些内容。可将什么类型的资源保存到库?了解每个应用程序可以保存到库中或从库中访问的资源的类型。(使用表末尾的滚动控件可完整查看表的内容。)https://helpx.adobe.com/cn/creative-cloud/help/supported-formats-creative-cloud-libraries.chromeless.html
7.怎么在eclipse中添加spring?Worktile社区在"Java Build Path"对话框中,选择"Libraries"选项卡。 点击"Add External JARs"按钮,并选择您下载的Spring框架JAR文件。Spring框架的JAR文件通常包括"spring-core.jar"、"spring-context.jar"等。 点击"Apply and Close"按钮以将Spring框架添加到项目中。 https://worktile.com/kb/ask/831281.html
8.AltiumDesigner怎么添加库文件?我们使用AD设计原理图的时候,经常会使用到库里面的元器件,但是一个库文件可能涵盖度没有那么广,找不到我们需要的元器件,这个时候可以通过添加库文件来解决这个问题。 1、首先,我们打开一张原理图后,找到右下角的工具栏,点击进入【system】。 2、在【system】菜单下点击打开【libraries】。 https://www.360doc.cn/article/74527663_1058800387.html
9.IntellijIDEA添加jar包的三种方式zhuzhipeng二.通过Modules的Dependencies添加:(推荐) 1.打开 File -> Project Structure (Ctrl + Shift + Alt + S) 2.单击 Modules -> Dependencies -> "+" -> "Jars or directories" 3.选择硬盘上的jar包 4.Apply -> OK 三.通过Libraries添加:(强烈推荐) https://www.cnblogs.com/mracale/p/10493823.html
10.idea导入jar包的详细图文教程java通过添加Libraries的方式引入: 1、首先在根目录下创建一个 libs 的目录 2、打开 File -> Project Structure 3、单击 Libraries -> "+" -> "Java" -> 选择我们导入的项目主目录,点击OK 4、注意:在弹出的方框中点击“Cancel”,取消将其添加到Module中。 https://www.jb51.net/article/279131.htm
11.起点读书改版实战!如何通过优化视觉流程大幅提高工作效率?关键词:组件化和 Libraries 功能。 Libraries 功能是什么?怎么用 →《实用全面!教你用Sketch Libraries构建组件库/设计体系》 所谓组件化是将产品设计中重复出现的控件整理归类,究其共性,以最小颗粒重组,通过整齐排布,并最终以准确易懂的语言来命名;使用过程中既可准确定位,又方便维护和修改,这就是组件化。而 Librahttps://www.uisdc.com/visual-optimization-process-to-improve-efficiency
12.iOS制作framework以及引入到工程4)在Link Binary With Libraries中添加。 5)點擊“+”號,加入所需的系統提供的.framework文件 6)引入頭文件,就行了 引用第三方framework 步驟 這裡主要使用之前創建的framework測試 1)從Finder裡面直接將.framework文件直接拖到工程目錄中 2)在Link Binary With Libraries中添加framework https://www.ios5.online/ios/ioskf/ioskfzh/201703/16749.html
13.RTThread添加libraries 拷贝固件库到BSP的libraries目录内 解压RTT源码包和固件库压缩包,先拷贝固件库的”GD32E50x_Firmware_Library”文件夹到RTT源码包的”bsp/gd32/arm/libraries/“路径下: 修改libraries目录内的配置文件 这里可以看到libraries目录下还有两个配置文件“Kconfig”和“.ignore_format.yml”,Kconfig文件后面用https://club.rt-thread.org/ask/article/5c0c4ba7eb4ab1ad.html
14.4.添加第三方库解压开发环境搭建下的libraries.zip文件,然后把里面的所有文件复制进入C:UsersAdministratorDocumentsArduinolibraries文件夹下。5.重启arduinoIDE开发软件,打开Sketch->Include Library,往下拉,就可以看到多了一些第三方库的名称,需要用到哪个就点击添加就可以。6https://www.yahboom.com/build.html?id=2892
15.LinkBinaryWithLibraries添加*.framework两次才能成功,是Xcode直到今天,我又抽风的使用手动去导入。我就问其他人,什么是所谓的“Xcode项目的默认框架”,别人就说,你不用添加,就可以直接import的,就是默认的了。我就一个一个试了下,发现*.framework都不用添加,就可以直接import! 添加的方法:TARGETS -->Build Phases --> Link Binary With Libraries https://www.jianshu.com/p/fe77b040d3f8
16.文档中心13.在授权页上添加协议弹窗怎么实现通过addCustomPrivacyAlertView 添加,具体实现可以参考 SDK 包中的 demo 示例源码,A 配置示例部分,如下:注意:默认添加进去的view是隐藏的,需要主动调用view.setVisibility(View.VISIBLE);14.webview 适配问题报错信息:java.lang.RuntimeException: Using WebView from more than one https://doc.chuanglan.com/document/7W0LJ71Z0KA3U459
17.ConsuminglibrariesandcomponentsinC++projectsReference libraries and components at build time Organize project output files Custom build steps and build events Create a project from existing code Open Folder projects for C++ CMake projects C++ Build Insights Compare header units, modules, and precompiled headers https://msdn.microsoft.com/zh-cn/library/47w1hdab.aspx
18.Allegro问题用法技巧汇总22、如何在现有PCBlayout中添加元器件 回复:Place-->Manually-->Adanced Settings-->打勾“library”-->Placement List-->Components by refdes ; 23、如何利用PCBlayout元器件,存储到元器件库中 回复:File-->Export-->libraries--> 只选择“Package symbols”就行; https://tech.hqew.com/fangan_1649064