相关链接:
video:
makefile从入门到项目编译实战
blog:
Ubuntu 下cmake编译C程序简单流程
使用cmake构建C/C++项目和动态库
Linux下使用CMake编译C++
[CMake简介与在Linux环境下简单使用CMake的示例]
CMake进行C/C++开发(linux下)
cl编译汇编代码
Visual Stdio 中的 C/C++ 编译器都是同一个,叫做 CL。下面表格列出了一些基本的命令行选项。
| CL |
gcc |
说明 |
| /E |
-E |
输出预处理结果 |
| /Fa |
-S |
输出汇编文件 |
| /Za |
-ansi |
禁止语言扩展,这两个还不是等价的 |
| /Dname |
-Dname |
定义一个宏,相对于在代码中添加了 #define name |
| /Dname=value |
-Dname=value |
定义一个宏,相对于在代码中添加了 #define name value |
| /Wall |
-Wall |
将所有的警告信息全开。 |
| /Od |
-O0 |
禁止优化 |
| /O1 |
-Os |
以最节省空间为目标优化 |
| /O2 |
-O2 |
以允许速度最快为目标优化 |
| /Idirecotry |
-Idirecotry |
指定头文件搜索路径 |
| /c |
-c |
生成目标文件 .obj, 不链接 |
| /libpath:direcotry |
-Ldirecotry |
指定库文件搜索路径(MSVC的/libpath属于链接选项,第一个链接选项之前要指定/link选项,用来告诉编译器驱动,后续选项传给链接器使用) |
| /GR,/GR- |
-frtti,-fno-rtti |
开启或关闭RTTI |
| /link |
-Wl |
链接指定的模块或给链接器传递参数 |
| /LD |
-shared |
编译产生DLL文件 |
| /LDd |
|
编译产生DLL文件(调试版) |
| /MD |
|
与动态多线程版本运行库MSVCRT.LIB链接 |
| /MDd |
|
与调试版动态多线程版本运行库MSVCRTD.LIB链接 |
| /MT |
|
与静态多线程版本运行库LIBCMT.LIB链接 |
| /MTd |
|
与调试版静态多线程版本运行库LIBCMTD.LIB链接 |
除了这些,还有不少的命令行选项,不过一般用途来说,这些就够用了
https://learn.microsoft.com/zh-cn/cpp/build/reference/running-nmake?view=msvc-170)
一些链接
CMake 保姆级教程(上)
使用cmake生成nmake配置文件
[使用nmake编译](
cmake设置静态部署
1
| set(CMAKE_EXE_LINKER_FLAGS -static)
|
cmake设置windows程序管理员权限
1 2 3
| set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\"")
|
cmake设置windows程序静态编译mtd
1 2
| set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")
|
windows下编译x64_Release版本
1 2
| cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_SIZEOF_VOID_P=8 .. make -j8
|
或者
1 2
| cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_SIZEOF_VOID_P=8 .. cmake --build . -j8
|
使用make install在linux中安装后卸载方法
在build文件夹中查看有没有install_manifest.txt
1
| sudo xargs rm < install_manifest.txt
|
添加源文件目录
1 2 3 4 5 6 7 8
| include_directories( source/CppArray source/CppDeque source/CppFoward_list source/CppList source/CppSet source/CppString source/CppVector)
|
添加目录下的所有源文件
1 2 3
| file(GLOB_RECURSE SOURCE_FILES "source/*.cpp") add_executable(stl ${SOURCE_FILES})
|
添加链接库目录
1 2 3 4 5 6 7 8 9 10
| target_link_libraries(stl CppArray CppDeque CppFoward_list CppList CppSet CppString CppVector )
|
设置输出目录
1 2
| set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
设置CPP版本
1 2 3
| set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF)
|
设置C语言与C++
1
| project(STL LANGUAGES CXX C)
|
添加src目录
1
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
|