xiaolonghun1 发表于 2016-3-13 08:23:16

Segmentaion falut 线程,System() a33

本帖最后由 xiaolonghun1 于 2016-3-15 08:45 编辑

在a33上面编写了一个线程,通过android交叉编译工具的话,
是可以编译通过,并且正常运行的,但是遇到system()函数执行控制台指令的时候,sysmtem()函数里面的内容执行不了。
之前我再a20上面也遇到过真个问题。用android.mk进行编译,通过
android-nkd-r9正常编译通过了,并且能够正常使用。
但是现在尝试着在a33上面进行测试的时候,就出现了段错误。
网上的好多解决斑斑是通过将里面的内容在创建进行的时候,handler函数的时候
用成添加了参数handler()了之后才会出现的这个问题的。
但是现在我是由于换了编译工具了之后,才会出现的这种现象,
不知道是什么原因导致的,初步猜想是编译工具的问题,等到之后
尝试的用nkd-r10测试一下,因为我现在使用的android代码是android4.4.2
的这个源代码


xiaolonghun1 发表于 2016-3-15 08:49:00

pthread_create(&th_count,NULL,thread_count_handle,NULL);
在创建线程的时候,就会报这个错误。Segmentaion falut
用ndk-r10的使用,但是还是还会出现问题。
如果用原生态的arm-linux交叉编译工具的话,不会出现这个问题,
但是就是system()函数不执行。

xiaolonghun1 发表于 2016-3-15 08:53:26

本帖最后由 xiaolonghun1 于 2016-3-16 16:11 编辑



pthread_create 在创建线程的这个地方,就会报Segmenttaion falut
错误,我以为是编译器的问题,换成r10的,测试了一下也不可以。
用原生态的交叉编译工具的话,可以执行通过,但是system()函数
不执行

也不是编译工具的问题,就是我的这个,通过原生态的
make -C $(KDIR)M=$(PWD) modules ARCH=arm CROSS_COMPILE=/home/xiaolonghun/usr/local/arm/4.6.3/bin/arm-linux-gnueabi-
他是能够正常编译通过并且执行。但是就是这个交叉编译工具对于你所写的代码做了进一步优化,
以至于一些不是治具变量的,main()函数里面的变量也被认为成了全局变量了。
把一些全局变量拎出来,放到main()函数外面就不会出现这个问题了。
出现段错误,主要还是你的访问到一些全局变量,而你所定义的变量是局部变量所导致的。
问题解决了,结贴。


xiaolonghun1 发表于 2016-3-15 08:53:48




pthread_create 在创建线程的这个地方,就会报Segmenttaion falut
错误,我以为是编译器的问题,换成r10的,测试了一下也不可以。
用原生态的交叉编译工具的话,可以执行通过,但是system()函数
不执行

xiaolonghun1 发表于 2016-3-15 08:53:49




pthread_create 在创建线程的这个地方,就会报Segmenttaion falut
错误,我以为是编译器的问题,换成r10的,测试了一下也不可以。
用原生态的交叉编译工具的话,可以执行通过,但是system()函数
不执行

xiaolonghun1 发表于 2016-3-15 08:53:49




pthread_create 在创建线程的这个地方,就会报Segmenttaion falut
错误,我以为是编译器的问题,换成r10的,测试了一下也不可以。
用原生态的交叉编译工具的话,可以执行通过,但是system()函数
不执行
页: [1]
查看完整版本: Segmentaion falut 线程,System() a33