1.mingw编译器修改了编译逻辑,把linux相关的接口等,编程windows上的东西。编译生成的可以直接在windows上运行,但是对linux的接口应该有很大的限制(linux特有的接口能编译通过?)
2.cygwin 相当于做了一个中间层的库,把linux中的接口在windows上实现了一遍。在windows上运行需要依赖cygwin.dll库,性能也不佳。这种一般是用途是把linux中的软件移植到windows上用的。
上面两种生成的都是windows上执行的程序。
如果想在windows上开发linux上的程序,一般有几种方式
1.使用samba服务器,通过远程的方式,在windows上开发,在linux上编译
2.swl,这种方式很方便,能在windows上编译调试。原理是什么?
下面是swl方式的一个列子
开发环境vscode wsl(ubuntu18.04)
vscode 插件 wsl,cmake,coderun?c/c++等
编译直接点击底部CMAKE齿轮
运行ctrl+f5
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ build and debug active file",
"type": "cppdbg",
"request": "launch",
// "program": "${fileDirname}/${fileBasenameNoExtension}",
"program": "${workspaceFolder}/build/myssl",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
//"preLaunchTask": "g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
cmake
cmake_minimum_required(VERSION 3.0.0)
project(myssl VERSION 0.1.0)
#https://blog.csdn.net/harryhare/article/details/89143410
include(CTest)
enable_testing()
link_directories("/usr/local/lib/")
link_libraries(crypto)
link_libraries(ssl)
add_executable(myssl main.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
|