diff --git a/general/CMakeLists.txt b/general/CMakeLists.txt index e18693a..cb0d88e 100644 --- a/general/CMakeLists.txt +++ b/general/CMakeLists.txt @@ -2,6 +2,34 @@ cmake_minimum_required(VERSION 3.11) enable_language(CXX) project(General) + + +# ----------------------------------------------------------------------------- +# O/S Detection + +# these are defined in common.h too +SET(LINUX False) +SET(FREEBSD False) +SET(MACOS False) + +# Detect the operating system +IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + SET(TARGET_OS_NAME "macos") + SET(TARGET_OS 3) + SET(MACOS True) +ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + SET(TARGET_OS_NAME "freebsd") + SET(TARGET_OS 2) + SET(FREEBSD True) +ELSE() + SET(TARGET_OS_NAME "linux") + SET(TARGET_OS 1) + SET(LINUX True) +ENDIF() + +# show the operating system on the console +message(STATUS "operating system: ${TARGET_OS_NAME} (TARGET_OS=${TARGET_OS})") + message( "current compiler " ${CMAKE_CXX_COMPILER_ID}) if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") # using Clang @@ -18,11 +46,39 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") # using Intel C++ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # using Visual Studio C++ + aux_source_directory(src DIRSRCS) + aux_source_directory(src/pattern PaternSrc) + aux_source_directory(src/function FunctionSrc) + aux_source_directory(src/algorithm AlgorithmSrc) + aux_source_directory(src/encrypt EncryptSrc) + add_compile_options( /DEBUG /D_CRT_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS) + + add_library(General OBJECT ${DIRSRCS} ${PaternSrc} ${EncryptSrc} ${FunctionSrc} ${AlgorithmSrc} ) + + set_property(TARGET General PROPERTY + MSVC_RUNTIME_LIBRARY MultiThreadedDebug) + + +elseif("AppleClang" STREQUAL ${CMAKE_CXX_COMPILER_ID}) + message("apple clang compiler") + + aux_source_directory(src DIRSRCS) + aux_source_directory(src/pattern PaternSrc) + # aux_source_directory(src/function FunctionSrc) + aux_source_directory(src/algorithm AlgorithmSrc) + aux_source_directory(src/encrypt EncryptSrc) + add_library(General OBJECT ${DIRSRCS} ${PaternSrc} ${EncryptSrc} ${FunctionSrc} ${AlgorithmSrc} ) + + set_property(TARGET General PROPERTY + MSVC_RUNTIME_LIBRARY MultiThreadedDebug) endif() SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/obj) message( "LIBRARY_OUTPUT_PATH " ${LIBRARY_OUTPUT_PATH}) + + + set(CMAKE_CXX_STANDARD 11) INCLUDE_DIRECTORIES (./) INCLUDE_DIRECTORIES (inc) @@ -30,16 +86,7 @@ INCLUDE_DIRECTORIES (encrypt) INCLUDE_DIRECTORIES (pattern) include_directories(third/include) -aux_source_directory(src DIRSRCS) -aux_source_directory(src/pattern PaternSrc) -aux_source_directory(src/function FunctionSrc) -aux_source_directory(src/algorithm AlgorithmSrc) -aux_source_directory(src/encrypt EncryptSrc) message("source file is " ${DIRSRCS} ${PaternSrc} ${EncryptSrc} ${FunctionSrc} ${AlgorithmSrc}) -add_library(General OBJECT ${DIRSRCS} ${PaternSrc} ${EncryptSrc} ${FunctionSrc} ${AlgorithmSrc} ) - -set_property(TARGET General PROPERTY - MSVC_RUNTIME_LIBRARY MultiThreadedDebug) diff --git a/general/src/debug.cpp b/general/src/debug.cpp index e8db350..fa54e27 100644 --- a/general/src/debug.cpp +++ b/general/src/debug.cpp @@ -1,5 +1,5 @@ // -// Created by admin on 2019/4/11. +// Created by admin on 2019/4/11. 这 // #include "debug.h" @@ -185,4 +185,6 @@ int dumpObj(void *dst,int rowNum,int num,bool ifAsii,char *out) { } cout << out << "\r\n"; return 0; -} \ No newline at end of file +} + + diff --git a/general/src/encrypt/aes.h b/general/src/encrypt/aes.h index 59e94e2..d3eb494 100644 --- a/general/src/encrypt/aes.h +++ b/general/src/encrypt/aes.h @@ -18,7 +18,6 @@ public: { ECB = 0, CBC = 1, CFB = 2 }; - private: enum { diff --git a/general/src/encrypt/rsa.cpp b/general/src/encrypt/rsa.cpp index b32eaed..2a6acfe 100644 --- a/general/src/encrypt/rsa.cpp +++ b/general/src/encrypt/rsa.cpp @@ -2,7 +2,6 @@ // Created by 29019 on 2020/1/5. // -#include "rsa.h" #include #include #include @@ -11,68 +10,64 @@ using namespace std; //小素数表,用于素数检测 const static int PrimeTable[550]= - { 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, - 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, - 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, - 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, - 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, - 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, - 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, - 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, - 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, - 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, - 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, - 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, - 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, - 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, - 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, - 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, - 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, - 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, - 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, - 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, - 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, - 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, - 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, - 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, - 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, - 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, - 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, - 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, - 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, - 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, - 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, - 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, - 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, - 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, - 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, - 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, - 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, - 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, - 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, - 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, - 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, - 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, - 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, - 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, - 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, - 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, - 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, - 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, - 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, - 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, - 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, - 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, - 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823, - 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, - 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001 - }; +{ 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, + 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, + 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, + 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, + 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, + 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, + 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, + 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, + 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, + 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, + 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, + 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, + 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, + 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, + 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, + 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, + 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, + 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, + 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, + 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, + 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, + 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, + 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, + 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, + 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, + 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, + 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, + 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, + 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, + 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, + 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, + 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, + 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, + 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, + 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, + 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, + 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, + 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, + 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, + 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, + 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, + 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, + 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, + 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, + 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, + 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, + 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, + 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, + 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, + 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, + 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, + 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, + 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823, + 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, + 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001 +}; -// 判断两个数是否为互素 -static int Mod(BigInt p1,BigInt p2){ - return 0; -} /* 目前的做法是基于费马素性检测 假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。 diff --git a/general/src/encrypt/rsa.h b/general/src/encrypt/rsa.h index eb46ec6..a030a44 100644 --- a/general/src/encrypt/rsa.h +++ b/general/src/encrypt/rsa.h @@ -8,12 +8,8 @@ #include #include #include -#include "src/math/BigInt.hpp" -using namespace std; -class rsa { -}; #endif //GENERAL_RSA_H diff --git a/general/src/function/daemon.cpp b/general/src/function/daemon.cpp index aa44c2e..5d1fbb3 100644 --- a/general/src/function/daemon.cpp +++ b/general/src/function/daemon.cpp @@ -8,7 +8,7 @@ typedef struct vector RangeProcess(); -vector StripList(const char *in, const char *d) +vector StripList(const char *in, const char *d)∫∫ { vector ret; map pos; @@ -557,4 +557,5 @@ int DaemonizeMonitor::StopProcess(string path) #endif #ifdef linux #endif -} \ No newline at end of file +} + diff --git a/general/src/math/BigInt.hpp b/general/src/math/BigInt.hpp index bc67e62..7282db1 100644 --- a/general/src/math/BigInt.hpp +++ b/general/src/math/BigInt.hpp @@ -21,6 +21,9 @@ #define BIG_INT_HPP #include +#include + + class BigInt { std::string value; diff --git a/general/src/utils.cpp b/general/src/utils.cpp deleted file mode 100644 index 58b0e91..0000000 --- a/general/src/utils.cpp +++ /dev/null @@ -1,101 +0,0 @@ -#if __cplusplus >= 201103L -#pragma message("编译器支持c++11 ") -#endif // __cplusplus >= 201103L -#include "utils.h" -#ifdef linux - - -using namespace std; - -int itoa(int n ,char * const s,int radix){ - if(nullptr == s){ - return -1; - } - if (radix == 10){ - sprintf(s,"%d",n); - } - if(radix == 8){ - sprintf(s,"%o",n); - } - if(radix == 16){ - sprintf(s,"%x",n); - } - return 0; - -} -#endif - -string itos(int x) -{ - char buf[100] = {0}; - itoa(x, buf, 10); - return string(buf); -} - -inline ENV_SYS CurrentEnvSys() { - #ifdef linux - return ENV_LINUX; - #endif - #ifdef _WINDOWS - return ENV_WINDOWS; -#endif -#ifdef _UNIX - return ENV_UNIX -#endif -#ifdef _WIN32 - return ENV_WINDOWS; -#endif -#if !defined(linux) && defined(_WINDOWS) && defined(_UNIX) && defined(_WIN32) - return ENV_NONE; -#endif -} - -inline ENV_COMPILER CurrentEnvCompiler() -{ -#ifdef __GNUC__ - return GCC; -#endif -#ifdef _MSC_VER - return CL; -#endif -#ifdef __clang__ - return CLANG; -#endif - return UNKNOWN; -} - -// 限制float有效位 -float LimitFloat(float in,int size) { - uint64_t tmp = 1; - for(int i = 0;i < size;i++){ - tmp = tmp*10; - } - uint64_t integer = uint64_t(in * tmp); // 提取整数部分 - - uint64_t decimal = integer %tmp; // 提取小数部分 - std::cout<< "float_limit " << in<< " "<< integer << " "<< decimal << " "<< tmp <