Fortran中有查询操作系统类型的函数吗?并将此类型指定为字符串或类似类型?基本上,我想在linux和windows机器上使用函数系统并运行我的程序。我使用函数系统的程序在linux上运行得很好,但现在我想做一般的工作,也可以在windows上运行它。假设我要查找的函数名为INQUIRE_SYSTEM。我的程序是这样的:
USE IFPORT
stringSYSTEM = INQUIRE_SYSTEM()
if (TRIM(ADJUSTL(stringSYSTEM).eq.linux)) THEN ! linux systems
I = SYSTEM(
是否可以将linux内核模块中的MODULE_DESCRIPTION设置为运行时生成的字符串,或者是否必须预先定义它,例如使用#define或“"?
当试图将其设置为运行时生成的字符串时,我会得到此错误:
error: expected ‘,’ or ‘;’ before ‘desc’
MODULE_DESCRIPTION(desc);
^
include/linux/moduleparam.h:23:26: note: in definition of macro ‘__MODULE_INFO’
= __stringify(tag)
这个内核使用ARM的GCC工具链构建得很好..由于某些原因,aarch64工具链抛出了这个错误。
kernel/sched/core_ctl.c: In function 'cpufreq_gov_cb':
kernel/sched/core_ctl.c:1086:25: error: dereferencing pointer to incomplete type
core_ctl_set_busy(info->cpu, info->load);
^
kernel/sched/core_ctl.c:1086:
#include<stdio.h>
#define A -B
#define B -C
#define C 5
int main() {
printf("The value of A is %dn", A);
return 0;
}
我偶然发现了上面的代码。我以为经过预处理后,它会被转换成
// code from stdio.h
int main() {
printf("The value of A is %dn", --5);
return 0;
}
这应该会导致编译错误。但是,代码编译得很好,并产生输出5。
在这种情况
我是C语言的新手,我正在维护别人的代码。我在头文件中遇到了这一点。我可以理解,如果源代码是在windows上编译的,它将进入if语句,否则,如果代码是在linux上编译的,它将进入else语句。如果我错了,请纠正我。
然而,问题是为什么在所有的include头前面使用# (hash)?
非常感谢您的建议,
#ifdef WIN32
# include <conio.h>
# include <process.h>
# include <stdlib.h>
# include <string.h>
#else
# include
即使在从零开始构建所有依赖项和构建目录之后,我也会得到Yocto的几个.bb文件的.bb错误。
ERROR: oe_runmake failed
ERROR: Function failed: do_compile (log file is located at
/home/fsl-community-bsp-jethro1/build/tmp/work/imx6q-poky-
linux-gnueabi/linux-fslc-imx/3.14-1.1.x+gitAUTOINC+327d5c9063-
r0/temp/log.do_compile.14224)
ERROR: Logfi
我使用-O0 -g3选项使用GCC编译了所有源文件,然后在GDB中运行了相应的二进制文件。在接收到SIGABRT之后,我执行了回溯。
以下是GDB中运行的“崩溃”输出:
terminate called recursively
terminate called recursively
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
terminate called recursively
Program received s
我将运行一个在代码中使用#include <linux/bootmem.h>的代码。当我在Linux中运行代码时,我得到以下错误
“fatal error: linux/bootmem.h: No such file or directory
#include <linux/bootmem.h>”
我怎样才能找到那个文件?我找了也找不到。
如果我找到了这个文件,我该如何使用它?将文件放在同一个目录中就足够了吗?