所以我创建了ffmpeg配置文件,使其成为纯C(独立于平台,但理论上只是) 所以我的配置很简单(0.6.1,0.6.3测试): ./configure –disable-doc –disable-ffplay –disable-ffprobe –disable-ffserver –disable-avdevice –disable-avfilter –disable-pthreads –disable-everything –enable-muxer=flv –enable-encoder=flv –enable-encoder=h263 –disable-mmx –disable-shared –prefix=bin/ –disable-protocols –disable-network –disable-optimizations –disable-debug –disable-asm –disable-stripping 在Linux上进行编译将在4个库中解析,总大小为1 mb。 但我需要使用自定义编译器编译ffmpeg(开源gcc模拟称为Adobe Alchemy ,让我们将C / c ++编译到Flash中) 它在标准化过程中给出了几乎每个文件的错误: Array @ARGV missing the @ in argument 1 of shift() at /home/rupert/Downloads/alchemy-ubuntu-v0.5a/achacks/gcc line 218. cc1: error: unrecognized command line option “-Wtype-limits” cc1: error: […]
对不起,如果我的问题非常基本。 我想了解预处理器cpp产生的输出。 假设我有一个非常基本的跟随程序。 #include #include int x=100; int main () { printf (“\n Welcome..\n”); } 我执行以下命令。 cpp main.c main.i 在main.i # 1 “/usr/include/stdio.h” 1 3 4 上面这行是什么意思?
在某种程度上,我想在C项目的函数名中使用µ字符。 这是不可能的吗? 我得到的错误就像 error: stray ‘\302’ in program 我尝试添加选项: -fexec-charset=UTF-8 -finput-charset=UTF-8 到我的构建脚本,但我不能理解那些启用。 我正在运行这个版本的gcc: arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors 6-2017-q2-update) 6.3.1 20170620 (release) [ARM/embedded-6-branch revision 249437]
我写了一个程序,它使用我系统上安装的共享库。 该库很少安装在其他系统上。 如何编译我的程序,以便不需要在其他系统上安装库? 我有可用的库的源代码。 什么是最好的方式? 其他系统当然具有相同的架构和操作系统。
以下(用gcc -E blah.c测试): #define UNUSED(type) type UNUSED_ ## __COUNTER__ UNUSED(char const *) UNUSED(int) 产生: char const * UNUSED__COUNTER__ int UNUSED__COUNTER__ 我期待着: char const * UNUSED0 int UNUSED1 我试过调用另一个宏,将括号中的参数包装起来无济于事。 如果我不粘贴令牌,它似乎工作正常。 该文档特别提到在标记粘贴中使用__COUNTER__ 。 我究竟做错了什么?
C99标准区分隐式和显式类型转换(6.3转换)。 我猜,但是无法找到,当目标类型的精度高于源时,会执行隐式强制转换,并且可以表示其值。 [这是我认为从INT到DOUBLE发生的事情]。 鉴于此,我看下面的例子: #include // printf #include // for INT_MIN #include // for endianess #define IS_BIG_ENDIAN (*(uint16_t *)”\0\xff” < 0x100) int main() { printf("sizeof(int): %lu\n", sizeof(int)); printf("sizeof(float): %lu\n", sizeof(float)); printf("sizeof(double): %lu\n", sizeof(double)); printf( IS_BIG_ENDIAN == 1 ? "Big" : "Little" ); printf( " Endian\n" ); int a = INT_MIN; printf("INT_MIN: %i\n", a); printf("INT_MIN as […]
在尝试实现一个function来改变菜单上的状态,但进入该function时我的参考丢失 void gotoLowerlevel(Menu *item) { if (item->chld != 0x00){ item = item->chld; } } 函数调用以这种方式完成,currentState是指向struct Menu的指针 case ENTER: if (cnsle->inMenuFlag == 0) { cnsle->inMenuFlag = 1; cnsle->currentState = cnsle->root; gotoLowerlevel(cnsle->currentState); displayMenu(cnsle->currentState,&cnsle->display); } 我不知道为什么这不起作用。 有任何想法吗..??
我有应用程序test.c通过在主机(在ubuntu)机器上使用gcc我已成功编译并成功运行主机上的应用程序。 现在我想用LPC1788 arm-cross编译器交叉编译相同的应用程序。 请指导我如何链接openssl库文件 我的Mkakefile与GCC CC = gcc CFLAGS = -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -I/usr/include/xmlsec1 -I/usr/include/libxml2 -DXMLSEC_OPENSSL_097=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\”openssl\ -DUNIX_SOCKETS -D XML_SECURITY LDFLAGS = -lcrypto -I/usr/include/libxml2 -lxml2 -I/usr/include/xmlsec1 -lxmlsec1 all: $(CC) src/test.c -o test $(CFLAGS) $(LDFLAGS) 通过更改编译器,我使用了以下Makefile CC = /home/amarayya/doc/tools/arm-2010q1/bin/arm-uclinuxeabi-gcc CFLAGS = -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_XKMS=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -I/usr/include/xmlsec1 -I/usr/include/libxml2 -DXMLSEC_OPENSSL_097=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\”openssl\ -DUNIX_SOCKETS -D XML_SECURITY LDFLAGS = -lcrypto […]
/* test.c */ void func1() { } int main() { func1(); } 您好,我正在使用C编写内核代码。但是我测试了上面的代码以了解如何构建C内核代码。 下面的命令就是我给出的提示。 我在Windows 8.1上使用MinGW。 gcc -c -m32 test.c ld -o test -Ttext 0x00 -e _main test.o 但这个错误是从ld发生的。 test.o:test.c:(.text+0x7): undefined reference to `__main’ 所以,我尝试了不同的方式。 为gcc添加-nostdlib和–freestanding选项。 但结果是一样的。 CRT0中是__main函数吗? 我该怎么做才能解决这个问题..?
我有一个基于ARM NEON Cortex-A8的处理器目标。 我通过使用NEON来优化我的代码。 但是当我编译我的代码时,我得到了这个奇怪的错误。 不知道如何解决这个问题。 我正在尝试使用主机上的Code Sourcery(PART2)编译以下代码(第1部分)。 我得到了这个奇怪的错误(PART3)。 我在这里做错了吗? 任何人都可以编译它,看看他们是否也得到相同的编译错误? 奇怪的是,在代码中,如果我注释掉else if(step_size == 4)代码的一部分,那么错误就会消失。 但是,遗憾的是我的优化并不完整,所以我必须拥有它。 起初我认为它是CodeSourcey编译器(在我的主机上)的问题,所以我直接在我的目标上编译程序(我的目标在Ubuntu上运行)。 我在那里使用了gcc,再一次,我得到了同样的错误,当我注释掉else if(step_size == 4)部分时,错误就消失了。 救命! 第1部分 #include #include”arm_neon.h” #define IMAGE_HEIGHT 480 #define IMAGE_WIDTH 640 float32_t integral_image[IMAGE_HEIGHT][IMAGE_WIDTH]; float32x4_t box_area_compute3(int, int , int , int , unsigned int , float); inline int min(int, int); int main() { box_area_compute3(1, 1, 4, […]