在Linux/gcc上创建与pthreads和libstdc++静态链接的共享对象,可以按照以下步骤进行:
example.cpp
:#include<iostream>
#include <pthread.h>
#include <unistd.h>
using namespace std;
void* printHello(void* arg) {
cout << "Hello from pthread!"<< endl;
return NULL;
}
int main() {
pthread_t thread;
pthread_create(&thread, NULL, printHello, NULL);
pthread_join(thread, NULL);
return 0;
}
-c
选项编译源代码文件为目标文件:g++ -c example.cpp -o example.o -pthread -static-libstdc++
其中,-c
选项表示只编译源代码文件,不进行链接;-o
选项表示指定输出文件名;-pthread
选项表示链接pthreads库;-static-libstdc++
选项表示静态链接libstdc++库。
-shared
选项将目标文件链接为共享对象:g++ -shared example.o -o example.so -pthread -static-libstdc++
其中,-shared
选项表示生成共享对象文件;-o
选项表示指定输出文件名。
完成以上步骤后,example.so
即为与pthreads和libstdc++静态链接的共享对象。
领取专属 10元无门槛券
手把手带您无忧上云