automake, gcc-core, gcc-g++, gdb, make
Circular 类
- Circular.h
#pragma once
class Circular
{
public:
Circular(double pi);
virtual ~Circular();
double PI;
double getArea(double radius);
double getCircumference(double radius);
};
- Circular.cpp
#include "Circular.h"
Circular::Circular(double pi)
{
PI = pi;
}
Circular::~Circular()
{
}
double Circular::getArea(double radius) {
return PI * (radius * radius);
}
double Circular::getCircumference(double radius) {
return PI * (radius * 2);
}
Create Project
File -> New -> C/C++ Project
“C++ Managed Build”
- Project type
Executable: Hello World C++ Project
- Toolchains
cygwin GCC / mingw GCC
- testCir2.cpp
#include <iostream>
#include <stdlib.h> // atof
#include <string.h> // strlen
#include "Circular.h"
using namespace std; // C2065: 'cout' and 'endl'
// https://stackoverflow.com/a/8032108
const wchar_t *GetWC(const char *c)
{
const size_t cSize = strlen(c)+1;
wchar_t* wc = new wchar_t[cSize];
mbstowcs (wc, c, cSize);
return wc;
}
int main(int argc, char* argv[]) // https://stackoverflow.com/a/780147
{
const double Pi = 3.14;
double dRadius = 3;
if (argc > 1) {
dRadius = atof(argv[1]);
// https://en.cppreference.com/w/c/string/wide/wcstof
// const wchar_t* p = GetWC(argv[1]);
// wchar_t* end;
// dRadius = wcstof(p, &end);
}
// 输入的半径
cout << "Entered radius: " << dRadius << endl;
Circular *circular = new Circular(Pi);
// 面积
double dArea = circular->getArea(dRadius);
cout << "Area: " << dArea << endl;
// 周长
double dCircumference = circular->getCircumference(dRadius);
cout << "Circumference: " << dCircumference << endl;
return 0;
}
run application
- msys2
libwinpthread-1.dll
libgcc_s_seh-1.dll
libstdc++-6.dll
- cygwin
cygwin1.dll
cyggcc_s-seh-1.dll
cygstdc++-6.dll
Msys2
Name | C Library | C++ Library |
---|---|---|
UCRT64 | ucrt | libstdc++ |
MINGW64 | msvcrt | libstdc++ |
- update
# Update package mirrors
pacman -Sy pacman-mirrors
- msvcrt
pacman -S make gdb \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-autotools
- ucrt
pacman -S make gdb \
mingw-w64-ucrt-x86_64-gcc
mingw-w64-ucrt-x86_64-autotools