溫馨提示×

Clang在Ubuntu上的多線程編譯

小樊
88
2024-09-20 13:34:07
欄目: 智能運維

Clang是一個基于LLVM的C/C++/Objective-C/Objective-C++編譯器,它提供了出色的性能和診斷能力

  1. 首先,確保你的Ubuntu系統(tǒng)已經(jīng)安裝了Clang。如果沒有,可以使用以下命令安裝:
sudo apt update
sudo apt install clang
  1. 創(chuàng)建一個簡單的C++源文件,例如main.cpp
#include <iostream>
#include <thread>

void print_hello() {
    std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl;
}

int main() {
    std::thread t1(print_hello);
    std::thread t2(print_hello);

    t1.join();
    t2.join();

    return 0;
}
  1. 使用Clang編譯這個源文件,并使用-std=c++11選項啟用C++11支持(如果你的編譯器版本較新,可能不需要這個選項):
clang++ -std=c++11 main.cpp -o main -pthread

這里,-pthread選項告訴Clang使用POSIX線程庫(libpthread),以便在編譯時啟用多線程支持。

  1. 運行編譯后的程序:
./main

你應該會看到類似以下的輸出:

Hello from thread 0x7fff3b9a6710
Hello from thread 0x7fff3b9a6740

這表明程序成功地創(chuàng)建了兩個線程,并在它們之間共享了執(zhí)行。

0