关于C/C++的编译、构建、CMake、x86_amd64等问题(自用)
被这些玩意整红温了
编译器版本
- x86:编译器为x86版本,输出文件为x86。
- amd64_x86:编译器为amd64版本,输出文件为x86。
- amd64:编译器为amd64版本,输出文件为amd64。
- x86_amd64:编译器为x86版本,输出文件为amd64、
所以,为什么没有x64呢?
什么是CMake
MakeFile生成工具
什么是MakeFile
自动化构建
在多文件程序编写完成后,我们需要“手动编译每一个文件,并为它们链接依赖库”(构建)。
而makefile帮助我们把这一过程自动化,只要编写一次makefile规则,后续编译链接只要一个命令即可搞定。
什么是构建项目
编译大家都很清楚,把源代码转换为机器码。构建过程包含编译过程,此外,构建还包括链接过程。当然,还包括其它乱七八糟的操作
CMake命令
include_directories(...) 包含库的头文件
link_libraries(...) 将这些库文件lib,链接到稍后产生的可执行文件中
add_executable(myProj main.cpp) 将源文件编译为名为myProj的可执行文件
target_include_directories(...) 为指定exe,包含库的头文件
target_link_libraries(target ...) 将这些库文件lib,链接到指定的可执行文件中
aux_source_directory( ./ vars) 查找指定目录下的所有源文件,并赋值给变量vars
add_library(name [库类型] src1 src2 ...) 使用指定的源文件编译生成一个目标库
add_subdirectory(path output) 编译子文件夹,并将生成的库文件放入output文件夹下
find_package() 查找指定库文件
C++怎么使用第三方库
分两步:1.包含 头文件.h 所在文件夹 2. 指明 库文件.lib 所在位置
一般都用VS开发,网上教程很多,怎么“包含”和“指明”