关于C/C++的编译、构建、CMake、x86_amd64等问题(自用)

被这些玩意整红温了

编译器版本

  • x86:编译器为x86版本,输出文件为x86。
  • amd64_x86:编译器为amd64版本,输出文件为x86。
  • amd64:编译器为amd64版本,输出文件为amd64。
  • x86_amd64:编译器为x86版本,输出文件为amd64、

所以,为什么没有x64呢?

什么是CMake

MakeFile生成工具

在windows环境下

CMake可以通过cmakelist.txt帮你生成vs解决方案。(-g 参数)

在vs解决方案中,选择“生成解决方案”,vs会依据cmakelist.txt中的规则,生成库文件或者可执行程序。

(所以,能不能cmake直接生成库文件和可执行程序呢?)

什么是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开发,网上教程很多,怎么“包含”和“指明”

关于.dll与.pyd

两者都是动态链接库文件。几乎只有后缀名不同的这一个差异。

此外,pyd文件的C/C++源代码,需要额外有pyinit_name()函数,来供Python解释器识别。

所以,用VS编译链接源代码,并生成.dll文件后,直接改后缀名为.pyd即可。

在windows上使用gcc,make等命令

仅需下载win64devkit即可,里面包含了很多套件,不用再单独下载gcc,MinGW之类的。

其它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值