RISC-V平台编译state-threadx264ffmpegzlog
- 其他
- 2025-09-07 00:36:01

1.state-threads
源码下来之后
直接 make linux-debug
目录下生成了对应的.a 和 .h文件
gcc test.c -o test -l st -L .
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/socket.h> #include <netinet/in.h> #include <st.h> #define BACKLOG 5 #define IOBUFSIZE 8192 #define PORT 7474 static void *handle_request(void *arg) { st_netfd_t cli_nfd = (st_netfd_t) arg; struct pollfd pd; pd.fd = st_netfd_fileno(cli_nfd); pd.events = POLLIN; char buf[IOBUFSIZE]; int nw, nr; for ( ; ; ) { /*pd.revents = 0; if (st_poll(&pd, 1, ST_UTIME_NO_TIMEOUT) <= 0) { printf("st_poll<=0\n"); break; }*/ //if (pd.revents & POLLIN) { nr = (int) st_read(cli_nfd, buf, IOBUFSIZE, ST_UTIME_NO_TIMEOUT); if (nr <= 0)break; printf("[recv][%d] %s\n",nr,buf); nw = st_write(cli_nfd, buf, nr, ST_UTIME_NO_TIMEOUT); printf("[write] %d\n",nw); if (nw == nr)break; //} } done: st_netfd_close(cli_nfd); return NULL; } int main() { int sock, client_fd; struct sockaddr_in address; struct sockaddr_in cli_addr; socklen_t addrlen = sizeof(address); st_netfd_t cli_nfd, srv_nfd; int n =0; // 初始化StateThreads库 if (st_init() != 0) { perror("st_init"); return 0; } if ((sock = socket(PF_INET, SOCK_STREAM, 0)) < 0) { printf("socket"); exit(1); } n = 1; if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&n, sizeof(n)) < 0) { printf("setsockopt"); exit(1); } // 绑定socket到端口 address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(PORT); if (bind(sock, (struct sockaddr *)&address, sizeof(address)) < 0) { printf("bind"); exit(1); } listen(sock, 128); if ((srv_nfd = st_netfd_open_socket(sock)) == NULL) { printf("st_netfd_open"); exit(1); } printf("tcp srv start\n"); for ( ; ; ) { n = sizeof(cli_addr); cli_nfd = st_accept(srv_nfd, (struct sockaddr *)&cli_addr, &n,ST_UTIME_NO_TIMEOUT); if (cli_nfd == NULL) { printf("st_accept\n"); continue; } if (st_thread_create(handle_request, cli_nfd, 0, 0) == NULL) { printf("st_thread_create\n"); continue; } } close(sock); st_netfd_close(srv_nfd); return 0; }用网络助手测试下正常
2.x264
默认的官网的不支持risc-v平台 去下面链接下载支持此架构的
Jiayan Qian / x264-riscv-dev · GitLab (videolan.org)
./configure \ --prefix=./ubuntu \ --enable-static \ --enable-shared \
如上图所示生成了对应的.a文件 和头文件
3.ffmpeg
执行 脚本
打了一大串信息
RISC-V平台编译state-threadx264ffmpegzlog由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“RISC-V平台编译state-threadx264ffmpegzlog”