Kan AI vechten met toenemend aantal ransomware-aanvallen?
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
LLVM is een open-source compilerinfrastructuur. LLVM is gestart in 2000 en wordt sinds 2005 op grote schaal gebruikt en aangepast door Apple. Clang is een C, C ++, Objective-C en Objective-C ++ compiler die werkt met het LLVM-systeem. Clang is in 2007 opgericht door Apple en sindsdien zijn Google en Intel betrokken bij de voortdurende ontwikkeling ervan.
De ontwikkelaars van Clang beweren dat het vergeleken met GCC sneller compileert, minder geheugen gebruikt, gebruiksvriendelijkere diagnostiek geeft tijdens het compileren en compatibel is met GCC.
CentOS volgt de ontwikkeling van Red Hat Enterprise Linux (RHEL). RHEL streeft ernaar een stabiel serverplatform te zijn, wat betekent dat het niet overhaast is om de nieuwste versies van alles op te nemen.
Vanaf het schrijven van dit artikel distribueert CentOS 6 officieel LLVM & Clang v3.4.2. Clang v3.6 is echter uitgebracht.
De officiële suggestie is dat als u een recentere versie van LLVM & Clang nodig heeft, u een andere UNIX-distributie zou moeten overwegen die meer gericht is op het ondersteunen van de nieuwste versies van softwarepakketten.
Gelukkig kun je een meer recente versie LLVM & Clang GCC op CentOS installeren. Dit wijkt af van puur gebruik van de officieel gedistribueerde software, maar soms heb je het gevoel dat je weinig keus hebt.
In dit artikel wordt beschreven hoe u de officieel ondersteunde versie van LLVM & Clang door CentOS 6 installeert en hoe u een nieuwere versie installeert. In dit artikel wordt ervan uitgegaan dat je een nieuw geïnstalleerde CentOS 6 VPS hebt, maar je kunt de instructies zeker volgen op een VPS die je al hebt gebruikt.
Clang is grotendeels onafhankelijk van de GCC, maar met ingang van het schrijven van dit artikel, Clang maakt gebruik van nog een aantal gedeelde bibliotheken door GCC geïnstalleerd (dat wil zeggen, crtbegin.o
, gcc
, en gcc_s
). Als je LLVM & Clang op CentOS 6 installeert, kun je niets compileren als je niet ook GCC op je systeem hebt voor deze gedeelde bibliotheken. Idealiter zou yum een pakketafhankelijkheid hebben voor clang van gcc en gcc-c ++, maar vanaf het schrijven van dit artikel is yum zich niet bewust van de afhankelijkheid.
Bovendien vereist het bouwen van een nieuwere versie van LLVM & Clang vanuit de bron G ++ v4.7 +, die je alleen op CentOS 6 kunt krijgen door het per bron te installeren.
Als u alle onderstaande stappen uitvoert, komt u uit op 2 versies van GCC en 2 versies van LLVM & Clang. Dit omvat een officieel ondersteunde binaire oudere versie en een nieuwere bronversie voor elk programma. Het is echter niet nodig om alle onderstaande stappen uit te voeren. U kunt beslissen of u de officieel ondersteunde binaire oudere versie van LLVM & Clang, of de nieuwere versie van de bron wilt, en het gedeelte met instructies dat bij uw beslissing past, uitvoeren.
BELANGRIJK! Installeer eerst een officieel ondersteunde (oudere) versie van GCC door de stappen uit te voeren in het artikel GCC installeren op CentOS 6 - u hoeft de stappen NIET uit te voeren onder de kop van dat artikel "Installeer een nieuwere versie van GCC vanaf de bron '.
Installeer LLVM & Clang
sudo yum install clang
--- This will bring in llvm as a dependency
Controleer de geïnstalleerde versies en bekijk hun locaties.
clang --version
May say: clang version 3.4.2 (tags/RELEASE_34/dot2-final)
which clang
/usr/bin/clang
gcc --version
May say: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
g++ --version
May say: g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
which gcc
/usr/bin/gcc
which g++
/usr/bin/g++
Om LLVM & Clang per bron op CentOS te bouwen, moet je GCC v4.7 of hoger hebben. CentOS 6 heeft niet zo hoog als een versie in yum, dus je moet eerst een recentere GCC vanaf de bron installeren.
BELANGRIJK! Installeer eerst een nieuwere versie van GCC vanaf de bron door de stappen uit te voeren in het artikel Hoe GCC op CentOS 6 te installeren - je moet WEL alle stappen in dat artikel uitvoeren, inclusief onder het kopje "Installeer een nieuwere versie van GCC vanaf bron".
Installeer extra vereiste pakketten.
sudo yum install cmake
Installeer een nieuwere versie van Python. LLVM & Clang v3.6.0 vereist Python v2.7 +, maar CentOS 6 yum repository heeft alleen Python v2.6.6.
mkdir ~/sourceInstallations
cd ~/sourceInstallations
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -xvf Python-2.7.9.tgz
cd Python-2.7.9
./configure && make && sudo make install
Bepaal welke versie van LLVM & Clang je wilt. Deze opdracht toont u de "tags" voor de beschikbare versies.
svn ls http://llvm.org/svn/llvm-project/llvm/tags | grep RELEASE
RELEASE_1/
...
RELEASE_352/
RELEASE_360/
RELEASE_361/
svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_361
rc1/
--- At this time, there is no final, just a release candidate. You could certainly use a release candidate, but this article will show how to use a final release.
svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360
final/
rc1/
rc2/
rc3/
rc4/
Haal de bron op van de versie van LLVM & Clang die u wilt. Dit duurt een paar minuten. De rest van dit artikel is geschreven voor RELEASE_360/
en zal de bronnen downloaden naar ~/sourceInstallations/llvm_RELEASE_360/
- U zult de juiste tag moeten vervangen om in toekomstige versies te passen. De onderstaande mappen van compiler-rt
, libcxx
en libcxxabi
zijn niet absoluut noodzakelijk, maar bevatten enkele van de functies die LLVM & Clang hebben die GCC niet heeft, dus zijn opgenomen in dit artikel. Er zijn nog andere LLVM "subprojecten" die je zou kunnen gebruiken, zoals dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode en lld. U kunt hierover lezen op de LLVM-website .
cd ~/sourceInstallations
svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360/final llvm_RELEASE_360
cd llvm_RELEASE_360/tools
svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/final clang
cd ../projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_360/final compiler-rt
svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_360/final libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_360/final libcxxabi
cd ..
svn update
At revision X.
--- Hopefully this outputs one line saying "At revision X", but numbers instead of "X". If it downloads more source files, a new revision was released while you were downloading the source code. This is highly unlikely unless you're using trunk (the most up to date, maybe unstable code.) But, if this happens, perform a svn update in the tools/clang, projects/compiler-rt, projects/libcxx, projects/libcxxabi, and again ~/sourceInstallations/llvm_RELEASE_360, until you are fully up to date.
Bouw LLVM & Clang. Dit zal een tijdje duren. Als dit correct is ingevuld, zal de laatste regel die je ziet "succes" zeggen. Het is normaal dat er snel foutmeldingen verschijnen. Het is altijd een goed idee om dingen in een andere map te bouwen dan in een bronmap.
mkdir ../llvm_RELEASE_360_build
cd ../llvm_RELEASE_360_build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ../llvm_RELEASE_360 && make && sudo make install && echo success
--- If your VPS has multiple cores, you can speed up the build by changing the middle part
--- of this line from "&& make &&" to "&& make -j <number of cores> &&".
--- You can see the number of cores your VPS has by running "nproc"
--- If you omit -DCMAKE_BUILD_TYPE=Release, the build defaults to debug. This is great if you need to debug LLVM & Clang itself, but slows down compilation of your end programs considerably.
--- If you omit the references to gcc and g++, it will default to using the older binary versions in /usr/bin/, and will not compile.
Controleer de geïnstalleerde versies en bekijk hun locaties.
clang --version
May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
clang++ --version
May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
which clang
/usr/local/bin/clang
which clang++
/usr/local/bin/clang++
Voeg de nieuwe bibliotheken toe aan ld (de GNU-linker).
echo "/usr/local/lib" > usrLocalLib.conf
sudo mv usrLocalLib.conf /etc/ld.so.conf.d/
sudo ldconfig
--- This may say a file or two "is not an ELF file - it has the wrong magic bytes at the start."
--- You may ignore this message. It is silent about the work it successfully completed.
Maak optioneel een "hallo wereld" -programma.
mkdir ~/code
cd ~/code
Create a file main.cpp that says:
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
return 0;
}
--- One way to create this file is to run "vi main.cpp", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
clang++ main.cpp -o main
./main
Hello World!
clang++ -stdlib=libc++ -lc++abi main.cpp -o main
--- This uses Clang's libc++ and libc++abi, instead of the GNU stdlibc++ and stdlibc++abi
./main
Hello world!
Gebruik LLVM & Clang wanneer je dat wilt.
You could set LLVM & Clang to be your system's default C and C++ compiler by running:
echo "export CC=/usr/local/bin/gcc" >> ~/.bashrc
echo "export CXX=/usr/local/bin/g++" >> ~/.bashrc
source ~/.bashrc
Once and a while there is a difference between Clang and GCC, but it's becoming more and more rare. To be more conservative, you could specify in your code's buildsystem to use LLVM & Clang, but otherwise leave your system's default to the source build of GCC.
Herstel optioneel ruimte op de harde schijf. Uw ~/sourceInstallations
map neemt ongeveer 11 GB schijfruimte in beslag. Het is waarschijnlijk verstandig om de mappen te bewaren, aangezien er optionele configuratie-opties zijn die u op een bepaald moment in de toekomst mogelijk moet gebruiken, en het zou sneller zijn als er al veel gedaan is. En zoals hierboven vermeld, zijn er extra "subprojecten" die u aan LLVM & Clang kunt toevoegen. Het bouwproces maakt ook logboeken die u later kunt controleren en waarmee u kunt werken als er iets misgaat. Maar nadat u "sudo make install" eerder hebt uitgevoerd, is uw geïnstalleerde LLVM & Clang niet afhankelijk van iets in deze map, en kan ruimte schaars zijn, dus u kunt deze stap doen en de 11 GB terugvorderen.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Je hebt nu je nieuwere LLVM & Clang in /usr/local/bin
, je nieuwere 64-bit LLVM & Clang libs in /usr/local/lib
, en je nieuwere LLVM & Clang bevatten bestanden in /usr/local/include
.
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.