我有一个问题链接一个embedded式目标的应用程序。 我正在使用Min-GW在windows下运行一个在Linux下运行的ARM9目标。 其实我从静态链接切换到dynamic链接.so库以节省内存空间。 我收到错误消息 libT3Printer.so:对`__ASSERT'的未定义引用 我检查了lib的所有来源,我不知道这个函数可以调用的地方。 有没有可能找出谁(哪个源文件或函数)可能是缺less函数的调用者?
我有一个项目已经通过gcc命令行标志为所有文件设置了“-Os”优化。 但是,我想要禁用其中一个源文件中某些方法的优化。 为了做到这一点,我试图为这些方法指定优化属性。 但是, gcc说它在构build期间忽略了optimize属性。 有人知道问题是什么吗? class C { public: int __attribute__((optimize("-O0"))) foo(); . . }; 我正在使用gcc版本4.4.3。
考虑一下,这个消息: N,8545,01/02/2011 09:15:01.815,"RASTA OPTSTK 24FEB2011 1,150.00 CE",S,8.80,250,0.00,0 这只是一个例子。 这个想法是,这是一个csv文件中的行。 现在,如果我把它分成逗号,那么1150的数字就会出现问题。 双引号内的string是可变长度的,但可以确定为一个“元素”(如果我可以使用这个术语)其他元素是被分隔的元素, 我如何parsing它? (除了Ragelparsing引擎) Soham
可能重复: 为什么`gets'函数是危险的? 为什么不应该使用? 我要求用户input一个string使用fgets()将分析使用scanf()区分整数,浮动和字符。我想要一个可靠的程序,但我收到以下警告使用gcc: 在main': : warning: the函数中main': : warning: the gets函数是危险的,不应该被使用。 有人可以告诉我为什么这是危险的,它有什么安全的select? 如果有人能告诉我fgets致命的严重性(),这将是非常有帮助的。
我试图通过jni注册一个本地函数,为此,我必须在jninativemethod结构体中存储一个指向该函数的指针,该函数指针有一个void *字段。 在设置这个字段时,我得到错误的error: invalid conversion from void (*)(JNIEnv*, _jclass*, jlong, _jobject*)' to void*编译时使用unix上的GCC。 我环顾四周,似乎你不允许将函数指针转换为void指针,那么这个接口是否被破坏? 有没有一个“正确”的方法来做到这一点? (除了使用javah生成头文件和导出函数之外)
我需要开发一个使用MySQL C API的程序。 我将在CentOS虚拟机上开发它并在RedHat服务器上运行它。 我编译了一些Hello World程序并将其传送到服务器。 但是我得到关于共享库的错误。 $ ./test1 ./test1: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory 我看到这个图书馆存在,但名称略有不同: $ ls -l /usr/lib/libssl* -rw-r–r– 1 root root 458752 Aug 13 17:27 /usr/lib/libssl.a lrwxrwxrwx 1 root root 26 Sep 14 01:26 /usr/lib/libssl.so -> ../../lib/libssl.so.0.9.8er -rwxr-xr-x 1 root root […]
我想了解如何使用gcc在Linux x86_64系统上使用pthread和堆栈分配和alignment方式,以及系统在堆栈中存储的数据。 我知道你可以使用pthread_attr_setstackconfiguration堆栈内存。 我在一个testing程序中完成了以下工作: 1)recursion调用自己并更新在堆栈上分配的未初始化的数组 2)打印出第一个数组元素的值,最后一个元素和rsp 从这我已经能够观察如何增加rsp(在我的testing程序中,我注意到一些recursion调用由编译器内联)。 我也可以看到添加TLS内存(带有__threadvariables)导致rsp的第一个值更低。 所以它看起来像TLSvariables分配在堆栈的顶部。 然而,我不确定的是还有什么。 在我看来,像堆栈的第一页以某种方式保留给系统,因为我分配的堆栈variables没有在该区域结束。 即使我不使用任何__threadvariables,我实例化的variables似乎不会分配在第一页(我设置堆栈内存,以便页面alignment)。 所以我的问题是:除了TLS数据和堆栈variables之外,还有什么,如果有的话,是在堆栈上的pthread?
有没有办法从nasm汇编文件中调用Cinput/输出函数?
所以我在linux(Ubuntu)中使用emacs文本编辑器编写了下面的代码,它基本上应该将传入的分隔符中的string分开。 当我运行它segfaulted我运行它通过GDB,它给了我一个错误在strcpy(我没有调用),但可能在sprintf隐式完成。 我没有想到我做了什么错误,所以我启动到Windows,并通过Visual Studio运行它,它工作正常,我是新的Linux编写C,并知道问题是在While循环,我打电话sprintf()(哪是奇怪的,因为在循环之外的调用写入而不会导致错误)将令牌写入数组。 如果有人能告诉我哪里出错,我将不胜感激。 这是代码 /* split() Description: – takes a string and splits it into substrings "on" the <delimeter>*/ void split(char *string, char *delimiter) { int i; int count = 0; char *token; //large temporary buffer to over compensate for the fact that we have //no idea how many arguments will be passed […]
在编译glibc 2.11 ,出现以下错误。 任何想法如何解决这个问题。 In file included from ../sysdeps/unix/sysv/linux/syslog.c:10: ../misc/syslog.c: In function '__vsyslog_chk': ../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to 'syslog': function body not available ../misc/syslog.c:155: sorry, unimplemented: called from here make[2]: *** [/home/alice/Desktop/glib-build/misc/syslog.o] Error 1 make[2]: Leaving directory `/home/alice/Desktop/glibc-2.11/misc' make[1]: *** [misc/subdir_lib] Error 2 make[1]: Leaving directory `/home/alice/Desktop/glibc-2.11' make: *** [all] Error 2