first commit
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
- MSVC Compiler Options
|
||||
```
|
||||
/nologo - Suppresses display of the copyright banner when the compiler starts up.
|
||||
/Ox - Code optimization - a subset of /O2 option (creates fast code) that doesn't include /GF (string pooling) or /Gy (function-level linking).
|
||||
/MT - Compiles to a multithreaded executable file, by using LIBCMT.lib (statically linking C runtime library).
|
||||
/W0 - Suppresses all warnings.
|
||||
/GS- - Disables buffer security.
|
||||
/D<string> - Defines a <string> constant (equivalent to #define directive at the beginning of a source code file). Helpful for enabling/disabling parts of the code during development and switching into a production phase.
|
||||
/Tc - Specifies a C source file. All code is treated as C code (instead of C++).
|
||||
/link - Passes the specified options to the linker.
|
||||
/OUT - Specifies the output file name.
|
||||
/SUBSYSTEM - Tells the operating system how to run the .exe file, ex. CONSOLE (console app), WINDOWS (GUI app), etc.
|
||||
/MACHINE - Specifies the target platform, ex. x86, x64, ARM, etc.
|
||||
/DLL - Builds a DLL.
|
||||
```
|
||||
- Compile windows assembly with nasm
|
||||
- `nasm -f "format" "code.asm" -o output_file.format`
|
||||
- `nasm -f bin eternalblue_kshellcode_x64.asm -o ./sc_x64_kernel.bin`
|
||||
- Compile as windows exe with ming
|
||||
- % compile 64bit windows code
|
||||
- `x86_64-w64-mingw32-` ("tab,tab,tab", to view all installed compilers")
|
||||
- % compile 32bit windows code
|
||||
- `i686-w64-mingw32-` ("tab,tab,tab", to view all installed compilers")
|
||||
- % examples of compiling C/C++ code on linux for windows
|
||||
- `x86_64-w64-mingw32-gcc hello_world.c -o hi.exe`
|
||||
- `x86_64-w64-mingw32-g++ hello_world.pp -o hi.exe`
|
||||
- Compile with mono
|
||||
- % compiling cs (C-Sharp) code into a static.exe file
|
||||
- `mono-csc compile_me.cs`
|
||||
- % compile with mcs ("for versions of mono-devel that doesn't come with csc")
|
||||
- `dmcs compile_me.cs ("old-not-supported-verion")`
|
||||
- `mcs compile_me.cs`
|
||||
- Run/test compiled EXE with mono-devel
|
||||
- `mono runme.exe`
|
||||
- Compile Visual Studio projects on Linux
|
||||
- Installing .NET
|
||||
- `sudo snap search dotnet`
|
||||
- `sudo snap install <package_name>`
|
||||
- for some applications you may have to install ("COMPLETE .NET") vs .Net Core with snap
|
||||
- https://dotnet.microsoft.com/download
|
||||
- `sudo dpkg -i dotnet_installer.deb`
|
||||
- Create new project
|
||||
- `dotnet new console`
|
||||
- Create solution project
|
||||
- `cd ./path/to/vs/project`
|
||||
- `dotnet new <option>`
|
||||
- `dotnet new sln`
|
||||
- Create new project file
|
||||
- get list of project types
|
||||
- `dotnet new project`
|
||||
- Create new project file
|
||||
- `dotnet new <project_file_type>`
|
||||
- `dotnet new mstest`
|
||||
- list, add, or remove project files from the the solution.sln file
|
||||
- double check if the soultion file has your project in it
|
||||
- `dotnet sln list`
|
||||
- add a project file to your solution file in the current dir
|
||||
- `dotnet sln add project.csproj`
|
||||
- remove project file from the solution file in the current dir
|
||||
- `dotnet sln remove project.csproj`
|
||||
- how to build a probject
|
||||
- `dotnet build`
|
||||
- `dotnet msbuild`
|
||||
- NOTE; ("this may only complie C# code into valid DLLs NOT EXEs")
|
||||
- build/msbuild with the system ARCH
|
||||
- `dotnet build -r win-x64 project.csproj`
|
||||
- how to run a project without testing with a final binary
|
||||
- `dotnet run`
|
||||
- true method to compile projects into .exe binaries
|
||||
- compile linux binary
|
||||
- `dotnet publish -r linux-x64 -p:PublishSingleFile=true --self-contained false`
|
||||
- compile windows.exe binary
|
||||
- `dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained false`
|
||||
|
||||
- adding the missing reference/packages you forget with dotnet+nuget
|
||||
- % https://www.nuget.org/ -> "search for reference/package
|
||||
- `dotnet add package <package-content-whatever-string>`
|
||||
- `cd /path/to/current/project`
|
||||
- `dotnet add package System.ServiceProcess.ServiceController --version 6.0.0-preview.5.21301.5`
|
||||
- compiling for real with xbuild and the solution file
|
||||
- NOTE; (xbuild is for stuff that is \<Full .NET\>, not just \<.dot Core\>)
|
||||
- `xbuild solution_file.sln`
|
||||
- NOTE: xbuild no longer supported
|
||||
Reference in New Issue
Block a user