出先段错误,好像是vfprintf的问题

#include
#include
int main(char ip[20]){
FILE* fp=NULL;
fp=fopen("passwd.txt","r");
char buff[200];
int i;
for(i=0;;i++){
memset(buff,0,sizeof(buff));
if(fp==NULL)
break;
fgets(buff,10,fp);
printf("%s",buff);
char shell[200];
sprintf(shell,"/home/hht/workspeace/work1/ssh.sh%s%s",ip,buff);
system("shell");
}
}


至于shell那段,我完全不会,在现摸索现用,不知道对不对

abcdefg
段错误 (核心已转储)

我向让这个程序把passwd里面的一行一行密码抓出来,然后输进脚本里,让脚本用C语言的IP和密码来SSH

2个回答

hht769089161
hht769089161 谢谢你,但是这个好长啊,我看不太懂,我这种方法能实现吗。
接近 5 年之前 回复

#!/usr/bin/expect -f
set passwd $2
#密码
set host $1
#目标主机地址
set name root
#用户名

spawn ssh $host -l $name
expect "root@$host’s password:"
send "$passwd\r"

send"uname\n"
expect"LINUX"
send_user"success"

这是ssh.sh的代码,套进来的不知道对不对

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于va_copy的问题,函数变参

#include <stdio.h> #include <stdarg.h> void print(char* format,...); void print(char* format,...) { va_list ptr; va_list ptr_tmp; va_start(ptr, format); va_copy(ptr_tmp,ptr); printf("print ptr: %p,%p\n",format, ptr); vfprintf(stdout, format, ptr); vfprintf(stdout, format, ptr); printf("print ptr: %p,%p\n",format, ptr); va_end(ptr); } int main() { int i=3,j=4; char a[20]="hello world"; print("%d,%d,%s\n",i,j,a); return 0; } ``` 为什么会产生段错误, 而把第二个 vfprintf(stdout, format, ptr);改成 vfprintf(stdout, format, ptr_tmp);就没有出现问题 ```

socket snprintf()函数调用发生错误.

char str1[4096]; snprintf(str1, sizeof(str1), ":%s", sock_ntop((SA* )&cliaddr, clilen)); 我的目的就是想把sock_ntop转换的cliaddr ipv4地址前面加个冒号,然后复制到str1中,使最后的格式为str1 = ":127.0.0.1" 但是,这个函数调用总是出错,错误代码如下: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7a60a03 in _IO_vfprintf_internal (s=s@entry=0x7fffffffbb30, format=<optimised out>, format@entry=0x401f18 ":%s", ap=ap@entry=0x7fffffffbc98) at vfprintf.c:1661 1661 vfprintf.c: No such file or directory. 整个程序代码好多,我就不贴了.

遇到蛋疼的:error LNK2001:

1>libcrypto.lib(ui_openssl.obj) : error LNK2001: 无法解析的外部符号 __acrt_iob_func 1>libcrypto.lib(eng_openssl.obj) : error LNK2001: 无法解析的外部符号 __acrt_iob_func 1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __acrt_iob_func 1>libcrypto.lib(pem_lib.obj) : error LNK2001: 无法解析的外部符号 __acrt_iob_func 1>libcrypto.lib(ui_openssl.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vfprintf 1>libcrypto.lib(eng_openssl.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vfprintf 1>libcrypto.lib(pem_lib.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vfprintf 1>libcrypto.lib(dso_win32.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vsprintf 1>libcrypto.lib(cryptlib.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vsprintf 1>libcrypto.lib(cryptlib.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vswprintf 1>libcrypto.lib(cryptlib.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vsscanf 1>libcrypto.lib(v3_utl.obj) : error LNK2001: 无法解析的外部符号 __stdio_common_vsscanf 1>libcurl.lib(gzlib.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsprintf 1>libcurl.lib(gzwrite.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsprintf 1>libcurl.lib(mprintf.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsprintf 1>libcurl.lib(cookie.obj) : error LNK2001: 无法解析的外部符号 __imp___acrt_iob_func 1>libcurl.lib(url.obj) : error LNK2001: 无法解析的外部符号 __imp___acrt_iob_func 1>libcurl.lib(mprintf.obj) : error LNK2001: 无法解析的外部符号 __imp___acrt_iob_func 1>libcurl.lib(formdata.obj) : error LNK2001: 无法解析的外部符号 __imp___acrt_iob_func 1>libcurl.lib(imap.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(ftp.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(http_proxy.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(http.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(parsedate.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(telnet.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(rtsp.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(cookie.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(hostip.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(url.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 1>libcurl.lib(transfer.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vsscanf 在网上找到一些方法:::添加过两个库文件,。,,也设置过多线程/mtd启动,,,也添加过BUILDING_LIBCURL。。。都不好使。。。依然出现这个错误,,是怎么回事???(VS2013)

printf 在内存里做了什么?

``` #define _GNU_SOURCE #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> void func(); void main(int argc,char **argv) { printf("i am main\n"); int clone_flag,arg,retval; char *stack; clone_flag=CLONE_VM|CLONE_SIGHAND; stack=(char*)malloc(4096); retval=clone((void*)func,&(stack[4095]),clone_flag,NULL); stack=(char*)malloc(4096); retval=clone((void*)func,&(stack[4095]),clone_flag,NULL); } void func() { int i; for(i=0;i<3;i++) { printf("i: %d\n ",i); } } ``` output: ``` i am main i: 0 i: 1 ``` strace -f ``` 5915 fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 1), ...}) = 0 5915 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 5915 brk(NULL) = 0xaf2000 5915 brk(0xb14000) = 0xb14000 5915 write(1, "i am main\n", 10) = 10 5915 clone(child_stack=0xaf400f, flags=CLONE_VM|CLONE_SIGHAND) = 5916 5915 clone(child_stack=0xaf501f, flags=CLONE_VM|CLONE_SIGHAND) = 5917 5915 exit_group(5917) = ? 5915 +++ exited with 29 +++ 5917 write(1, "i", 1) = 1 5917 write(1, ": 0\n ", 5) = 5 5917 write(1, "i", 1) = 1 5917 write(1, ": 1\n ", 5) = 5 5916 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xaf194f} --- 5916 +++ killed by SIGSEGV (core dumped) +++ 5917 +++ killed by SIGSEGV +++ ``` gdb ./a.out core ``` Core was generated by `./a.out'. Program terminated with signal SIGSEGV, Segmentation fault. #0 buffered_vfprintf (s=0x7f737fd43620 <_IO_2_1_stdout_>, format=0x40074e "i: %d\n ", args=0x1f49f27) at vfprintf.c:2299 2299 vfprintf.c: No such file or directory. [Current thread is 1 (LWP 6280)] (gdb) where #0 buffered_vfprintf (s=0x7f737fd43620 <_IO_2_1_stdout_>, format=0x40074e "i: %d\n ", args=0x1f49f27) at vfprintf.c:2299 #1 0x00007f737f9cb32d in _IO_vfprintf_internal ( s=0x7f737fd43620 <_IO_2_1_stdout_>, format=0x40074e "i: %d\n ", ap=ap@entry=0x1f49f27) at vfprintf.c:1293 #2 0x00007f737f9d3899 in __printf (format=<optimized out>) at printf.c:33 #3 0x00000000004006a8 in func () at code.c:23 #4 0x00007f737fa8541d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 ``` **如果我把“printf("i am main\n")”删掉,一切运行正常** strace ``` 5937 brk(NULL) = 0x1f75000 5937 brk(0x1f97000) = 0x1f97000 5937 clone(child_stack=0x1f75fff, flags=CLONE_VM|CLONE_SIGHAND) = 5938 5937 clone(child_stack=0x1f7700f, flags=CLONE_VM|CLONE_SIGHAND) = 5939 5937 exit_group(5939) = ? 5937 +++ exited with 51 +++ 5939 fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 1), ...}) = 0 5939 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 5939 write(1, "i: 0\n", 5) = 5 5939 write(1, " i: 1\n", 6) = 6 5939 write(1, " i: 2\n", 6) = 6 5938 write(1, " i: 2\ni: 0\n", 11) = 11 5939 exit_group(6) = ? 5939 +++ exited with 6 +++ 5938 write(1, " i: 1\n", 6) = 6 5938 write(1, " i: 2\n", 6) = 6 5938 exit_group(6) = ? 5938 +++ exited with 6 +++ ``` 为什么一个printf就能有这么大的影响呢?还有为什么SIGSEGV会把另外一个进程给杀死呢?

关于c语言的printf问题,在linux下运行问题

#include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<unistd.h> int main(void) { pid_t p; char* message; int n; p = fork(); if(p<0) { printf("fork failed\n"); exit(1); } if(p==0) { message = "This is the child\n"; n=6; } else { message = "This is the parent\n"; n=3; } for(;n>0;n--) { printf(message); sleep(1); } return 0; } printf(message);这条语句我觉得没什么问题,但gcc下运行时会报错 myfork.c: In function ‘main’: myfork.c:30:5: warning: format not a string literal and no format arguments [-Wformat-security] printf(message); ^ 请指点原因

opengl在VC2010中运行遇到的问题

在vc2010中配置了opengl的glew,glut,freeglut,gltools的库和头文件,用别人调试的代码怎么也跑不通,请问该如何解决 1> 正在对“Debug\OpenTest.unsuccessfulbuild”执行 Touch 任务。 1>ClCompile: 1> 所有输出均为最新。 1>ManifestResourceCompile: 1> 所有输出均为最新。 1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fprintf 已经在 gltools.lib(GLTools.obj) 中定义 1> 正在创建库 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.lib 和对象 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exp 1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 1>gltools.lib(GLBatch.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z),该符号在函数 "public: virtual void * __thiscall GLBatch::`scalar deleting destructor'(unsigned int)" (??_GGLBatch@@UAEPAXI@Z) 中被引用 1>gltools.lib(GLTriangleBatch.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z) 1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 ___report_rangecheckfailure,该符号在函数 "bool __cdecl gltLoadShaderFile(char const *,unsigned int)" (?gltLoadShaderFile@@YA_NPBDI@Z) 中被引用 1>gltools.lib(glew.obj) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure 1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 __imp____acrt_iob_func,该符号在函数 "bool __cdecl gltCheckErrors(unsigned int)" (?gltCheckErrors@@YA_NI@Z) 中被引用 1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 __imp____stdio_common_vfprintf,该符号在函数 __vfprintf_l 中被引用 1>C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exe : fatal error LNK1120: 4 个无法解析的外部命令 1> 1>生成失败。 1> 1>已用时间 00:00:05.07 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

error LNK2019: 无法解析的外部符号 __imp__RoInitialize@4

在VS2017里面写Qt5.9.2的项目,创建了一个新的Qt GUI 的项目, 但是却发现有一个关于怀疑.lib有关的问题。 具体错误如下: 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 __imp__RoInitialize@4,该符号在函数 _WinMain@16 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 __imp__RoGetActivationFactory@12,该符号在函数 "public: __thiscall AppContainer::AppContainer(void)" (??0AppContainer@@QAE@XZ) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _WindowsCreateStringReference@16,该符号在函数 "private: void __thiscall Microsoft::WRL::Wrappers::HStringReference::CreateReference(wchar_t const *,unsigned int,unsigned int)" (?CreateReference@HStringReference@Wrappers@WRL@Microsoft@@AAEXPB_WII@Z) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _WindowsDeleteString@4,该符号在函数 "public: void __thiscall Microsoft::WRL::Wrappers::HString::Release(void)" (?Release@HString@Wrappers@WRL@Microsoft@@QAEXXZ) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _WindowsGetStringRawBuffer@8,该符号在函数 "public: wchar_t const * __thiscall Microsoft::WRL::Wrappers::HString::GetRawBuffer(unsigned int *)const " (?GetRawBuffer@HString@Wrappers@WRL@Microsoft@@QBEPB_WPAI@Z) 中被引用 1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 _RoOriginateError@8,该符号在函数 "public: static void __cdecl Microsoft::WRL::ErrorHelper<0>::OriginateError(long,struct HSTRING__ *)" (?OriginateError@?$ErrorHelper@$0A@@WRL@Microsoft@@SAXJPAUHSTRING__@@@Z) 中被引用 1>D:\New Projects\VS_Project\QtGuiApplication7\Win32\Debug\\QtGuiApplication7.exe : fatal error LNK1120: 6 个无法解析的外部命令 1>已完成生成项目“QtGuiApplication7.vcxproj”的操作 - 失败。 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 在这里以其中一条具体的为例子:1>qtmaind.lib(qtmain_winrt.obj) : error LNK2019: 无法解析的外部符号 __imp__RoInitialize@4,该符号在函数 _WinMain@16 中被引用 ## **百度许多文章,发现大部分都是说缺少对应得.lib或者.h的文件, 但是我查看该项目的属性,发现是有qtmaind.lib这个库的,但是问什么还是有错误呢?** ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511253927_913872.png) ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511253940_181810.png) ![图片说明](https://img-ask.csdn.net/upload/201711/21/1511253949_303532.png) 百思不得七姐~~ 有没有大牛可以指点一下》》》

Linux中c语言多线程gdb调试“Cannot access memory at address”如何解决

程序的目的是做一个xml解析的工作。 部分代码如下: #define BUFLEN 10240 typedef struct buffer_t//需要操作的结构体 { char *buf; Bcsarray *bcsay; int bufnum; struct buffer_t *next; }databuf; databuf *buf, *bufs;//buf为链表头,bufs为操作时的游动指针 void readxml(void *arg);//第一个线程,已经正确初始化了buf链表,每块中buf->buf的大小都为BUFLEN+1;问题不在这个函数中,故不再列出 void division(void *arg)//有两个重要位置我标记了出来,后面有说明 { bufs = buf; while (bufs != NULL) { int i = 0, j = 0; int n = 0; if (bufs->buf[i] == '<') { j = i; j++; switch (bufs->buf[j]) { case '/': { while (1) { j++; if (bufs->buf[j] == 0) { if (bufs->next == NULL) { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; bufs->bcsay->bcs[n].bt = Etag_start; i = j; break; } else { char *e = (char*)malloc(sizeof(char)*(BUFLEN + 1)); **strcpy(e, bufs->next->buf);//这里报错(2号位置)** strcpy(bufs->next->buf, bufs->buf + i); strcat(bufs->next->buf, e); bufs->buf[i] = 0; free(e); break; } } if (bufs->buf[j] == '<') { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; bufs->bcsay->bcs[n].bt = Etag_start; n++; i = j; break; } } }; break; case '?': { while (1) { j++; if (bufs->buf[j] == 0) { char *e = (char*)malloc(sizeof(char)*(BUFLEN + 1)); strcpy(e, bufs->next->buf); strcpy(bufs->next->buf, bufs->buf + i); strcat(bufs->next->buf, e); bufs->buf[i] = 0; free(e); break; } if (bufs->buf[j] == '>') { if (bufs->buf[j - 1] == '?') { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; bufs->bcsay->bcs[n].bt = PI_start; n++; j++; i = j; break; } } } }; break; case '!': { while (1) { j++; if (bufs->buf[j] == 0) { char *e = (char*)malloc(sizeof(char)*(BUFLEN + 1)); strcpy(e, bufs->next->buf); strcpy(bufs->next->buf, bufs->buf + i); strcat(bufs->next->buf, e); bufs->buf[i] = 0; free(e); break; } if (bufs->buf[j] == '>') { if (bufs->buf[j - 1] == '-'&&bufs->buf[j - 2] == '-') { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; bufs->bcsay->bcs[n].bt = COMMENT_start; n++; j++; i = j; break; } else if (bufs->buf[j - 1] == ']'&&bufs->buf[j - 2] == ']') { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; bufs->bcsay->bcs[n].bt = CDSECT_start; n++; j++; i = j; break; } } } }; break; default: { while (1) { j++; if (bufs->buf[j] == 0) { if (bufs->next == NULL) { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; int k = 1; while (1) { if (bufs->buf[j - k] == '>') { if (bufs->buf[j - k - 1] == '/') bufs->bcsay->bcs[n].bt = Etag_start; else bufs->bcsay->bcs[n].bt = Stag_start; break; } k++; } i = j; } else { char *e = (char*)malloc(sizeof(char)*(BUFLEN + 1)); **strcpy(e, bufs->next->buf);//这里正常运行(1号位置)** strcpy(bufs->next->buf, bufs->buf + i); strcat(bufs->next->buf, e); bufs->buf[i] = 0; free(e); break; } } if (bufs->buf[j] == '<') { bufs->bcsay->bcs[n].bufnum = bufs->bufnum; bufs->bcsay->bcs[n].bufpos = i; int k = 1; while (1) { if (bufs->buf[j - k] == '>') { if (bufs->buf[j - k - 1] == '/') bufs->bcsay->bcs[n].bt = Etag_start; else bufs->bcsay->bcs[n].bt = Stag_start; break; } k++; } n++; i = j; break; } } }; break; } } else { i++; } } bufs = bufs->next; } } 两个线程我已经做了处理,暂时是串行执行的,互不影响。division这个线程,第一次(1号位置)和第二次(二号位置)运行的分支我已标注出,分支中的逻辑完全相同,但是只有第一次可以运行通过,第二次就不行了。循环会有很多次,但现在只能运行到第二次结尾。本来想删掉一部分无关代码,但害怕出问题,敬请谅解。 以上代码,我在windows下用vs2015跑过。把两个线程串行地写在一个函数中,正常运行。但是在Linux下用多线程,就会出现以上问题,strcpy函数位置出错。 后来经过调试发现,是在二号位置中,bufs->next->buf的问题。当我在gdb中调试到这里时,用“p bufs->next->buf”输出内容时,就出现Cannot access memory at address的错误。但是我访问数据结构中的其他项,比如 “p bufs->next->bufnum”,输出正常。并且在上一个线程中,一切正常。 求大神指点。

buffer overflow detected arm-linux-ar terminated

系统是ubuntu14.04 LTS gcc版本是4.4 步骤是这样: 先安装了binutils-2.15 ../configure --target=arm-linux --prefix=定义的安装目录 make make install 这个折腾了好久,成功安装好了 之后进行arm-linx-gcc制作 ../configure --target=arm-linux --prefix=定义的安装目录 --enable-language=c --disable-threads --disable-shared make 在make部分就出现了 *** buffer overflow detected ***: arm-linux-ar terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x741cf)[0x2b19ddccf1cf] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x2b19ddd66b2c] /lib/x86_64-linux-gnu/libc.so.6(+0x10a9f0)[0x2b19ddd659f0] /lib/x86_64-linux-gnu/libc.so.6(+0x109ef9)[0x2b19ddd64ef9] /lib/x86_64-linux-gnu/libc.so.6(_IO_default_xsputn+0xbc)[0x2b19ddcd754c] /lib/x86_64-linux-gnu/libc.so.6(_IO_padn+0xa0)[0x2b19ddccb510] /lib/x86_64-linux-gnu/libc.so.6(_IO_vfprintf+0x3c5d)[0x2b19ddca8bfd] /lib/x86_64-linux-gnu/libc.so.6(__vsprintf_chk+0x84)[0x2b19ddd64f84] /lib/x86_64-linux-gnu/libc.so.6(__sprintf_chk+0x7d)[0x2b19ddd64edd] arm-linux-ar[0x409524] arm-linux-ar[0x407781] arm-linux-ar[0x409dcd] arm-linux-ar[0x40d597] arm-linux-ar[0x40405f] arm-linux-ar[0x40453f] arm-linux-ar[0x405017] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x2b19ddc7cec5] arm-linux-ar[0x401cf9] ======= Memory map: ======== 00400000-00459000 r-xp 00000000 08:0b 61558 /home/kanata/armlinux/tools/bin/arm-linux-ar 00658000-00659000 r--p 00058000 08:0b 61558 /home/kanata/armlinux/tools/bin/arm-linux-ar 00659000-0065a000 rw-p 00059000 08:0b 61558 /home/kanata/armlinux/tools/bin/arm-linux-ar 0065a000-0065e000 rw-p 00000000 00:00 0 020f6000-0236a000 rw-p 00000000 00:00 0 [heap] 2b19dda36000-2b19dda59000 r-xp 00000000 08:0c 786434 /lib/x86_64-linux-gnu/ld-2.19.so 2b19dda59000-2b19dda5b000 rw-p 00000000 00:00 0 2b19dda5b000-2b19dda62000 r--s 00000000 08:0c 392357 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache 2b19dda62000-2b19dda6d000 rw-p 00000000 00:00 0 2b19dda6f000-2b19dda72000 rw-p 00000000 00:00 0 2b19ddc58000-2b19ddc59000 r--p 00022000 08:0c 786434 /lib/x86_64-linux-gnu/ld-2.19.so 2b19ddc59000-2b19ddc5a000 rw-p 00023000 08:0c 786434 /lib/x86_64-linux-gnu/ld-2.19.so 2b19ddc5a000-2b19ddc5b000 rw-p 00000000 00:00 0 2b19ddc5b000-2b19dde17000 r-xp 00000000 08:0c 786458 /lib/x86_64-linux-gnu/libc-2.19.so 2b19dde17000-2b19de016000 ---p 001bc000 08:0c 786458 /lib/x86_64-linux-gnu/libc-2.19.so 2b19de016000-2b19de01a000 r--p 001bb000 08:0c 786458 /lib/x86_64-linux-gnu/libc-2.19.so 2b19de01a000-2b19de01c000 rw-p 001bf000 08:0c 786458 /lib/x86_64-linux-gnu/libc-2.19.so 2b19de01c000-2b19de021000 rw-p 00000000 00:00 0 2b19de021000-2b19de703000 r--p 00000000 08:0c 138526 /usr/lib/locale/locale-archive 2b19de703000-2b19de719000 r-xp 00000000 08:0c 807277 /lib/x86_64-linux-gnu/libgcc_s.so.1 2b19de719000-2b19de918000 ---p 00016000 08:0c 807277 /lib/x86_64-linux-gnu/libgcc_s.so.1 2b19de918000-2b19de919000 rw-p 00015000 08:0c 807277 /lib/x86_64-linux-gnu/libgcc_s.so.1 7fffd333d000-7fffd3360000 rw-p 00000000 00:00 0 [stack] 7fffd33fe000-7fffd3400000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] make[2]: *** [libgcc.a] 已放弃 (core dumped) make[2]: *** 正在删除文件“libgcc.a” make[2]:正在离开目录 `/home/kanata/armlinux/build-tools/build-gcc/gcc' make[1]: *** [libgcc.a] 错误 2 make[1]:正在离开目录 `/home/kanata/armlinux/build-tools/build-gcc/gcc' make: *** [all-gcc] 错误 2 请问有高手解决过这种问题吗,说下我知道的可能性: 1.gcc版本过高,好友有尝试低版本的gcc编译通过的 2.我尝试过安装了4.1,但是configure的时候出现的问题是找不到crt1.o,之后export了crt1.o的路径的时候又出现 -lgcc_s.o找不到的问题==` 想放弃的时候尝试过的替代方案是直接下载别人做好的arm-linux-gcc工具包,但是按照配置弄的时候,却出现: kanata@blue:~$ arm arm2hpdl arm-linux-gcc arm-linux-objdump arm-linux-addr2line arm-linux-gcc-3.4.5 arm-linux-ranlib arm-linux-ar arm-linux-gccbug arm-linux-readelf arm-linux-as arm-linux-gcov arm-linux-size arm-linux-c++ arm-linux-gprof arm-linux-strings arm-linux-c++filt arm-linux-ld arm-linux-strip arm-linux-cpp arm-linux-nm arm-linux-g++ arm-linux-objcopy kanata@blue:~$ arm-linux-gcc -v bash: /home/kanata/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-gcc: 没有那个文件或目录 能有什么解决办法吗?

C++ error LNK2019: 无法解析的外部符号

在看某项目的源码时 发现其使用了第三方的头文件,之后我就去官网下载了。 下载来是压缩文件 里面有一些.c .h之类的文件,我把这些文件都包含在源码中。 然后运行就出现了: error LNK2019: 无法解析的外部符号 _jpeg_std_error,该符号在函数 "unsigned int __cdecl rescaleJPEG(unsigned char *,unsigned int,unsigned char * *,int)" (?rescaleJPEG@@YAIPAEIPAPAEH@Z) 中被引用 jpeg_std_error是第三方文件中定义的 unsigned int __cdecl rescaleJPEG是项目源码中定义的 而且在导入时 也使用了 extern “C” extern "C"{ #include "jpeglib.h" };

fatal error C1004: unexpected end of file found

//读者与写者问题 #include <stdio.h> #include <process.h> #include <windows.h> #ifdef _MT //设置控制台输出颜色 BOOL SetConsoleColor(WORD wAttributes) { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); if (hConsole == INVALID_HANDLE_VALUE) return FALSE; return SetConsoleTextAttribute(hConsole, wAttributes); } const int READER_NUM = 5; //读者个数 //关键段和事件 CRITICAL_SECTION g_cs, g_cs_writer_count; HANDLE g_hEventWriter, g_hEventNoReader; int g_nReaderCount; //读者线程输出函数(变参函数的实现) void ReaderPrintf(char *pszFormat, ...) { va_list pArgList; va_start(pArgList, pszFormat); EnterCriticalSection(&g_cs); vfprintf(stdout, pszFormat, pArgList); LeaveCriticalSection(&g_cs); va_end(pArgList); } //读者线程函数 unsigned int __stdcall ReaderThreadFun(PVOID pM) { ReaderPrintf(" 编号为%d的读者进入等待中...\n", GetCurrentThreadId()); //等待写者完成 WaitForSingleObject(g_hEventWriter, INFINITE); //读者个数增加 EnterCriticalSection(&g_cs_writer_count); g_nReaderCount++; if (g_nReaderCount == 1) ResetEvent(g_hEventNoReader); LeaveCriticalSection(&g_cs_writer_count); //读取文件 ReaderPrintf("编号为%d的读者开始读取文件...\n", GetCurrentThreadId()); Sleep(rand() % 100); //结束阅读,读者个数减小,空位增加 ReaderPrintf(" 编号为%d的读者结束读取文件\n", GetCurrentThreadId()); //读者个数减少 EnterCriticalSection(&g_cs_writer_count); g_nReaderCount--; if (g_nReaderCount == 0) SetEvent(g_hEventNoReader); LeaveCriticalSection(&g_cs_writer_count); return 0; } //写者线程输出函数 void WriterPrintf(char *pszStr) { EnterCriticalSection(&g_cs); SetConsoleColor(FOREGROUND_GREEN); printf(" %s\n", pszStr); SetConsoleColor(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); LeaveCriticalSection(&g_cs); } //写者线程函数 unsigned int __stdcall WriterThreadFun(PVOID pM) { WriterPrintf("写者线程进入等待中..."); //等待读文件的读者为零 WaitForSingleObject(g_hEventNoReader, INFINITE); //标记写者正在写文件 ResetEvent(g_hEventWriter); //写文件 WriterPrintf(" 写者开始写文件....."); Sleep(rand() % 100); WriterPrintf(" 写者结束写文件"); //标记写者结束写文件 SetEvent(g_hEventWriter); return 0; } int main() { printf(" 读者写者问题\n"); //初始化事件和信号量 InitializeCriticalSection(&g_cs); InitializeCriticalSection(&g_cs_writer_count); //手动置位,初始已触发 g_hEventWriter = CreateEvent(NULL, TRUE, TRUE, NULL); g_hEventNoReader = CreateEvent(NULL, FALSE, TRUE, NULL); g_nReaderCount = 0; int i; HANDLE hThread[READER_NUM + 1]; //先启动二个读者线程 for (i = 1; i <= 2; i++) hThread[i] = (HANDLE)_beginthreadex(NULL, 0, ReaderThreadFun, NULL, 0, NULL); //启动写者线程 hThread[0] = (HANDLE)_beginthreadex(NULL, 0, WriterThreadFun, NULL, 0, NULL); Sleep(50); //最后启动其它读者结程 for ( ; i <= READER_NUM; i++) hThread[i] = (HANDLE)_beginthreadex(NULL, 0, ReaderThreadFun, NULL, 0, NULL); WaitForMultipleObjects(READER_NUM + 1, hThread, TRUE, INFINITE); for (i = 0; i < READER_NUM + 1; i++) CloseHandle(hThread[i]); //销毁事件和信号量 CloseHandle(g_hEventWriter); CloseHandle(g_hEventNoReader); DeleteCriticalSection(&g_cs); DeleteCriticalSection(&g_cs_writer_count); return 0; }

Android 采集摄像头数据 , 通过ffmpeg推送流至服务器

Android 采集摄像头数据 , 通过ffmpeg推送流, 通过AdobeMediaServer查看 , 为什么播放视频总是隔一段时间一缓冲 , 而且播放有延迟。求大神帮忙啊 ``` AVFormatContext *ofmt_ctx; AVStream* video_st; //视音频流对应的结构体,用于视音频编解码。 AVCodecContext* pCodecCtx; AVCodec* pCodec; AVPacket enc_pkt; // 存储压缩数据(视频对应H.264等码流数据,音频对应AAC/MP3等码流数据) AVFrame *pFrameYUV; // 存储非压缩的数据(视频对应RGB/YUV像素数据,音频对应PCM采样数据) int framecnt = 0; int yuv_width; int yuv_height; int y_length; int uv_length; int64_t start_time; //const char* out_path = "rtmp://192.168.2.176/live/livestream"; //Output FFmpeg's av_log() void custom_log(void *ptr, int level, const char* fmt, va_list vl) { FILE *fp = fopen("/storage/emulated/0/av_log.txt", "a+"); if (fp) { vfprintf(fp, fmt, vl); fflush(fp); fclose(fp); } } JNIEXPORT jint JNICALL Java_com_zhanghui_test_MainActivity_initial(JNIEnv *env, jobject obj, jint width, jint height) { const char* out_path = "rtmp://192.168.2.176/live/livestream"; yuv_width = width; yuv_height = height; y_length = width * height; uv_length = width * height / 4; //FFmpeg av_log() callback av_log_set_callback(custom_log); av_register_all(); avformat_network_init(); //output initialize avformat_alloc_output_context2(&ofmt_ctx, NULL, "flv", out_path); //output encoder initialize //函数的参数是一个解码器的ID,返回查找到的解码器(没有找到就返回NULL)。 pCodec = avcodec_find_encoder(AV_CODEC_ID_H264); if (!pCodec) { LOGE("Can not find encoder!\n"); return -1; } pCodecCtx = avcodec_alloc_context3(pCodec); pCodecCtx->pix_fmt = PIX_FMT_YUV420P; pCodecCtx->width = width; pCodecCtx->height = height; pCodecCtx->time_base.num = 1; pCodecCtx->time_base.den = 25; pCodecCtx->bit_rate = 400000; pCodecCtx->gop_size = 250; /* Some formats want stream headers to be separate. */ if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) pCodecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER; //H264 codec param //pCodecCtx->me_range = 16; //pCodecCtx->max_qdiff = 4; //pCodecCtx->qcompress = 0.6; pCodecCtx->qmin = 10; pCodecCtx->qmax = 51; //Optional Param pCodecCtx->max_b_frames = 1; // Set H264 preset and tune AVDictionary *param = 0; // av_dict_set(&param, "preset", "ultrafast", 0); // av_dict_set(&param, "tune", "zerolatency", 0); av_opt_set(pCodecCtx->priv_data, "preset", "superfast", 0); av_opt_set(pCodecCtx->priv_data, "tune", "zerolatency", 0); //打开编码器 if (avcodec_open2(pCodecCtx, pCodec, &param) < 0) { LOGE("Failed to open encoder!\n"); return -1; } //Add a new stream to output,should be called by the user before avformat_write_header() for muxing video_st = avformat_new_stream(ofmt_ctx, pCodec); if (video_st == NULL) { return -1; } video_st->time_base.num = 1; video_st->time_base.den = 25; video_st->codec = pCodecCtx; //Open output URL,set before avformat_write_header() for muxing if (avio_open(&ofmt_ctx->pb, out_path, AVIO_FLAG_READ_WRITE) < 0) { LOGE("Failed to open output file!\n"); return -1; } //Write File Header avformat_write_header(ofmt_ctx, NULL); start_time = av_gettime(); return 0; } JNIEXPORT jint JNICALL Java_com_zhanghui_test_MainActivity_encode(JNIEnv *env, jobject obj, jbyteArray yuv) { int ret; int enc_got_frame = 0; int i = 0; // 为解码帧分配内存 pFrameYUV = avcodec_alloc_frame(); uint8_t *out_buffer = (uint8_t *) av_malloc( avpicture_get_size(PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height)); avpicture_fill((AVPicture *) pFrameYUV, out_buffer, PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height); //安卓摄像头数据为NV21格式,此处将其转换为YUV420P格式 jbyte* in = (jbyte*) (*env)->GetByteArrayElements(env, yuv, 0); memcpy(pFrameYUV->data[0], in, y_length); for (i = 0; i < uv_length; i++) { *(pFrameYUV->data[2] + i) = *(in + y_length + i * 2); *(pFrameYUV->data[1] + i) = *(in + y_length + i * 2 + 1); } pFrameYUV->format = AV_PIX_FMT_YUV420P; pFrameYUV->width = yuv_width; pFrameYUV->height = yuv_height; enc_pkt.data = NULL; enc_pkt.size = 0; // 定义AVPacket对象后,请使用av_init_packet进行初始化 av_init_packet(&enc_pkt); /** 编码一帧视频数据 * int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr); 该函数每个参数的含义在注释里面已经写的很清楚了,在这里用中文简述一下: avctx:编码器的AVCodecContext。 avpkt:编码输出的AVPacket。 frame:编码输入的AVFrame。 got_packet_ptr:成功编码一个AVPacket的时候设置为1。 函数返回0代表编码成功。 */ ret = avcodec_encode_video2(pCodecCtx, &enc_pkt, pFrameYUV, &enc_got_frame); av_frame_free(&pFrameYUV); if (enc_got_frame == 1) { LOGI("Succeed to encode frame: %5d\tsize:%5d\n", framecnt, enc_pkt.size); framecnt++; //标识该AVPacket所属的视频/音频流。 enc_pkt.stream_index = video_st->index; //标识该视频/音频流 //Write PTS AVRational time_base = ofmt_ctx->streams[0]->time_base; //{ 1, 1000 }; AVRational r_framerate1 = { 60, 2 }; //{ 50, 2 }; AVRational time_base_q = { 1, AV_TIME_BASE }; //Duration between 2 frames (us) int64_t calc_duration = (double) (AV_TIME_BASE) * (1 / av_q2d(r_framerate1)); //内部时间戳 //Parameters //enc_pkt.pts = (double)(framecnt*calc_duration)*(double)(av_q2d(time_base_q)) / (double)(av_q2d(time_base)); enc_pkt.pts = av_rescale_q(framecnt * calc_duration, time_base_q, time_base); enc_pkt.dts = enc_pkt.pts; enc_pkt.duration = av_rescale_q(calc_duration, time_base_q, time_base); //(double)(calc_duration)*(double)(av_q2d(time_base_q)) / (double)(av_q2d(time_base)); enc_pkt.pos = -1; //Delay int64_t pts_time = av_rescale_q(enc_pkt.dts, time_base, time_base_q); int64_t now_time = av_gettime() - start_time; if (pts_time > now_time) av_usleep(pts_time - now_time); ret = av_interleaved_write_frame(ofmt_ctx, &enc_pkt); av_free_packet(&enc_pkt); } // output(ofmt_ctx); return 0; } JNIEXPORT jint JNICALL Java_com_zhanghui_test_MainActivity_flush(JNIEnv *env, jobject obj) { int ret; int got_frame; AVPacket enc_pkt; if (!(ofmt_ctx->streams[0]->codec->codec->capabilities & CODEC_CAP_DELAY)) return 0; while (1) { enc_pkt.data = NULL; enc_pkt.size = 0; av_init_packet(&enc_pkt); ret = avcodec_encode_video2(ofmt_ctx->streams[0]->codec, &enc_pkt, NULL, &got_frame); if (ret < 0) break; if (!got_frame) { ret = 0; break; } LOGI("Flush Encoder: Succeed to encode 1 frame!\tsize:%5d\n", enc_pkt.size); //Write PTS AVRational time_base = ofmt_ctx->streams[0]->time_base; //{ 1, 1000 }; AVRational r_framerate1 = { 60, 2 }; AVRational time_base_q = { 1, AV_TIME_BASE }; //Duration between 2 frames (us) int64_t calc_duration = (double) (AV_TIME_BASE) * (1 / av_q2d(r_framerate1)); //内部时间戳 //Parameters enc_pkt.pts = av_rescale_q(framecnt * calc_duration, time_base_q, time_base); enc_pkt.dts = enc_pkt.pts; enc_pkt.duration = av_rescale_q(calc_duration, time_base_q, time_base); //转换PTS/DTS(Convert PTS/DTS) enc_pkt.pos = -1; framecnt++; ofmt_ctx->duration = enc_pkt.duration * framecnt; /* mux encoded frame */ ret = av_interleaved_write_frame(ofmt_ctx, &enc_pkt); if (ret < 0) break; } //Write file trailer av_write_trailer(ofmt_ctx); return 0; } JNIEXPORT jint JNICALL Java_com_zhanghui_test_MainActivity_close(JNIEnv *env, jobject obj) { if (video_st) avcodec_close(video_st->codec); avio_close(ofmt_ctx->pb); avformat_free_context(ofmt_ctx); return 0; } ```

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

MIPS单周期CPU-组成原理实验-华中科技大学

使用logisim布线完成的MIPS单周期CPU,可支持28条指令。跑马灯的代码已经装入了寄存器,可以直接开启时钟运行。

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

基于QT和OpenCV的五子棋实现源码

一个简单的五子棋应用,基于QT和OpenCV的实现源码,通过相邻棋子判断是否获胜,不包含人工智能算法,适合新手入门

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

JAVA初级工程师面试36问(完结)

第三十一问: 说一下线程中sleep()和wait()区别? 1 . sleep()是让正在执行的线程主动让出CPU,当时间到了,在回到自己的线程让程序运行。但是它并没有释放同步资源锁只是让出。 2.wait()是让当前线程暂时退让出同步资源锁,让其他线程来获取到这个同步资源在调用notify()方法,才会让其解除wait状态,再次参与抢资源。 3. sleep()方法可以在任何地方使用,而wait()只能在同步方法或同步块使用。 ...

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

智鼎(附答案).zip

并不是完整题库,但是有智鼎在线2019年9、10、11三个月的试题,有十七套以上题目,普通的网申行测题足以对付,可以在做题时自己总结一些规律,都不是很难

Visual Assist X 破解补丁

vs a's'sixt插件 支持vs2008-vs2019 亲测可以破解,希望可以帮助到大家

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

JavaWEB商城项目(包括数据库)

功能描述:包括用户的登录注册,以及个人资料的修改.商品的分类展示,详情,加入购物车,生成订单,到银行支付等!另外还有收货地址的和我的收藏等常用操作.环境(JDK 1.7 ,mysql 5.5,Ecli

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

一学即懂的计算机视觉(第一季)

图像处理和计算机视觉的课程大家已经看过很多,但总有“听不透”,“用不了”的感觉。课程致力于创建人人都能听的懂的计算机视觉,通过生动、细腻的讲解配合实战演练,让学生真正学懂、用会。 【超实用课程内容】 课程内容分为三篇,包括视觉系统构成,图像处理基础,特征提取与描述,运动跟踪,位姿估计,三维重构等内容。课程理论与实战结合,注重教学内容的可视化和工程实践,为人工智能视觉研发及算法工程师等相关高薪职位就业打下坚实基础。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/26281 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,但是大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/26281,点击右下方课程资料、代码、课件等打包下载

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

Qt5 局域网通信软件(模仿QQ)

采用Qt5进行开发的局域网通信客户端+Server,界面模仿QQ的界面,聊天界面采用QWidget绘制的气泡!

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

ANSI-VITA-46.0-2007(中文翻译版)_V1.0.pdf

ANSI-VITA 46.0 2007老版本的的英文版本的中文翻译版本,含目录,通过谷歌翻译进行文字翻译,翻译的不是很专业,对初学者理解VPX接口及协议有一定的帮助,后续会对翻译进行改进。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

相关热词 c# dbml文件 修改 c#遍历tree c# 能够控制单片机 c#对象写入数据库 c# 添加activex c#2005 json c# 数据库在云端 c# 字符串移位加密 c#禁用滚轮 c#实体类list去重复
立即提问