CMake在linux和win的运行执行文件不同之处

前言 :

通过之前的文章应该了解到 linux 系统和 win 系统对于构建 cpp 文件的差别也是很大的。
这里补充一下执行文件的不同之处:

CMake在linux和win的运行执行文件不同之处

Linux 的优点

Linux 下是有保存同级 CMakelists.txt 的 target_link_libraries 路径
[Pasted image 20231226152958.png]
而 windows 是没有保存路径的 .exe 必须要配合 .dll 文件,linux 的可执行文件是可以自寻路径的

Windows 搜索路径

通过隐式和显式链接,Windows 首先搜索“已知 DLL”,如 Kernel 32. Dll 和 User 32. Dll。Windows 然后按下列顺序搜索 DLL:

  1. 当前进程的可执行模块所在的目录。
  2. 当前目录。
  3. Windows 系统目录。GetSystemDirectory 函数检索此目录的路径。
  4. Windows 目录。GetWindowsDirectory 函数检索此目录的路径。
  5. PATH 环境变量中列出的目录。

Linux 搜索路径

Linux 搜索的先后顺序是:

  1. 编译目标代码时指定的动态库搜索路径
  2. 环境变量 LD_LIBRARY_PATH 指定的动态库搜索路径
  3. 配置文件/etc/ld. So. Conf 中指定的动态库搜索路径
  4. 默认的动态库搜索路径/lib