globals()['get_' + args.dataset]()
时间: 2024-01-26 19:02:14 浏览: 22
As an AI language model, I cannot infer what the function `get_()` does or what the argument `args.dataset` represents as there is no context or code available. Could you please provide more information or context?
相关问题
/tmp/ccuuRwzg.o: In function `_GLOBAL__sub_I_flag': Main.cc:(.text.startup+0x25): relocation truncated to fit: R_X86_64_32 against `.bss' Main.cc:(.text.startup+0x34): relocation truncated to fit: R_X86_64_32 against `.bss' /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.a(ios_init.o): In function `std::ios_base::Init::Init()': (.text._ZNSt8ios_base4InitC2Ev+0x4a): relocation truncated to fit: R_X86_64_PC32 against symbol `__gnu_internal::buf_cout_sync' defined in .bss._ZN14__gnu_internal13buf_cout_syncE section in /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.a(globals_io.o)
这是一个编译时出现的错误消息,指示在链接过程中出现了溢出错误。这些错误通常是由于目标文件或库文件的大小超过了可用的空间引起的。在你提供的情况下,似乎是某些全局变量或函数在链接时超出了可用的存储空间。
为了解决这个问题,你可以尝试以下几种方法:
1. 检查你的代码是否有很多全局变量或函数,如果是,可以尝试减少它们的数量或优化代码结构。
2. 检查你是否使用了过多的库文件,如果是,可以尝试减少使用的库文件数量或使用更小的库文件。
3. 检查你的编译器选项是否正确设置。你可以尝试使用更适合你的应用程序的编译器选项。
4. 如果你使用的是静态链接库,你可以尝试改用动态链接库,以减少可执行文件的大小。
希望这些方法能帮助你解决问题!如果还有其他问题,请随时提问。
# Makefile for CANopenNode, basic compile with blank CAN device DRV_SRC = . CANOPEN_SRC = .. APPL_SRC = . LINK_TARGET = canopennode_blank INCLUDE_DIRS = \ -I$(DRV_SRC) \ -I$(CANOPEN_SRC) \ -I$(APPL_SRC) SOURCES = \ $(DRV_SRC)/CO_driver_blank.c \ $(DRV_SRC)/CO_storageBlank.c \ $(CANOPEN_SRC)/301/CO_ODinterface.c \ $(CANOPEN_SRC)/301/CO_NMT_Heartbeat.c \ $(CANOPEN_SRC)/301/CO_HBconsumer.c \ $(CANOPEN_SRC)/301/CO_Emergency.c \ $(CANOPEN_SRC)/301/CO_SDOserver.c \ $(CANOPEN_SRC)/301/CO_TIME.c \ $(CANOPEN_SRC)/301/CO_SYNC.c \ $(CANOPEN_SRC)/301/CO_PDO.c \ $(CANOPEN_SRC)/303/CO_LEDs.c \ $(CANOPEN_SRC)/305/CO_LSSslave.c \ $(CANOPEN_SRC)/storage/CO_storage.c \ $(CANOPEN_SRC)/CANopen.c \ $(APPL_SRC)/OD.c \ $(DRV_SRC)/main_blank.c OBJS = $(SOURCES:%.c=%.o) CC ?= gcc OPT = OPT += -g #OPT += -DCO_USE_GLOBALS #OPT += -DCO_MULTIPLE_OD CFLAGS = -Wall $(OPT) $(INCLUDE_DIRS) LDFLAGS = .PHONY: all clean all: clean $(LINK_TARGET) clean: rm -f $(OBJS) $(LINK_TARGET) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ $(LINK_TARGET): $(OBJS) $(CC) $(LDFLAGS) $^ -o $@生成.so文件如何修改
这份 Makefile 文件是用于编译一个 CANopenNode 的程序,其中包含了一些 C 源文件和头文件,并且使用了 gcc 编译器进行编译。如果你想将其中的目标文件生成为动态链接库 .so 文件,你需要修改以下几点:
1. 修改 LINK_TARGET 变量为 .so 文件的名称,如:LINK_TARGET = libcanopennode.so。
2. 修改 CFLAGS 变量,添加 -fPIC 选项,表示编译为位置独立代码,如:CFLAGS = -Wall $(OPT) -fPIC $(INCLUDE_DIRS)。
3. 修改 LDFLAGS 变量,添加 -shared 选项,表示链接为共享库,如:LDFLAGS = -shared。
修改以上内容后,执行 make 命令即可生成 .so 文件。