c项目makefile多重定义错误

2023-11-30

这个问题是一个对应于创建的repexthis问题。

在我的嵌入式 C 项目中,我有两个独立的板,我想为每个板创建两个 .c 文件(master.c 和 Slave.c),其中包含自己的特定main()功能。

我使用 stm32cumbemx 生成带有 main.c、makefile 以及其他源和标头的项目(我想手动用 master.c 和 Slave.c 替换 main.c)。 这是项目的文件夹结构(为了简单起见,我删除了slave.c):

.
├── Inc
│   └── main.h
├── Makefile
├── Src
│   ├── main.c
│   └── master.c
└── STM32F103RBTx_FLASH.ld

main.h:

#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif


#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */

main.c:

#include "main.h"
int variable = 1;
void function(void);
int main() {
    variable += 1;
    while(1){}
}

void function(void) {
    int something = 0;
    something++;
}

master.c:

#include "main.h"
int variable = 1;
int variable2;
void function(void);
void function2(void);
int main() {
    variable += 1;
    while(1){
        function2();
    }
}

void function(void) {
    int something = 0;
    something++;
}

void function2(void) {
    variable2++;
}

STM32F103RBTx_FlASH.ld:

/* Entry Point */
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x20005000;    /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 20K
FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 128K
}

/* Define output sections */
SECTIONS
{
  /* The startup code goes first into FLASH */
  .isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) /* Startup code */
    . = ALIGN(4);
  } >FLASH

  /* The program code and other data goes into FLASH */
  .text :
  {
    . = ALIGN(4);
    *(.text)           /* .text sections (code) */
    *(.text*)          /* .text* sections (code) */
    *(.glue_7)         /* glue arm to thumb code */
    *(.glue_7t)        /* glue thumb to arm code */
    *(.eh_frame)

    KEEP (*(.init))
    KEEP (*(.fini))

    . = ALIGN(4);
    _etext = .;        /* define a global symbols at end of code */
  } >FLASH

  /* Constant data goes into FLASH */
  .rodata :
  {
    . = ALIGN(4);
    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
    . = ALIGN(4);
  } >FLASH

  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
  .ARM : {
    __exidx_start = .;
    *(.ARM.exidx*)
    __exidx_end = .;
  } >FLASH

  .preinit_array     :
  {
    PROVIDE_HIDDEN (__preinit_array_start = .);
    KEEP (*(.preinit_array*))
    PROVIDE_HIDDEN (__preinit_array_end = .);
  } >FLASH
  .init_array :
  {
    PROVIDE_HIDDEN (__init_array_start = .);
    KEEP (*(SORT(.init_array.*)))
    KEEP (*(.init_array*))
    PROVIDE_HIDDEN (__init_array_end = .);
  } >FLASH
  .fini_array :
  {
    PROVIDE_HIDDEN (__fini_array_start = .);
    KEEP (*(SORT(.fini_array.*)))
    KEEP (*(.fini_array*))
    PROVIDE_HIDDEN (__fini_array_end = .);
  } >FLASH

  /* used by the startup to initialize data */
  _sidata = LOADADDR(.data);

  /* Initialized data sections goes into RAM, load LMA copy after code */
  .data :
  {
    . = ALIGN(4);
    _sdata = .;        /* create a global symbol at data start */
    *(.data)           /* .data sections */
    *(.data*)          /* .data* sections */

    . = ALIGN(4);
    _edata = .;        /* define a global symbol at data end */
  } >RAM AT> FLASH


  /* Uninitialized data section */
  . = ALIGN(4);
  .bss :
  {
    /* This is used by the startup in order to initialize the .bss secion */
    _sbss = .;         /* define a global symbol at bss start */
    __bss_start__ = _sbss;
    *(.bss)
    *(.bss*)
    *(COMMON)

    . = ALIGN(4);
    _ebss = .;         /* define a global symbol at bss end */
    __bss_end__ = _ebss;
  } >RAM

  /* User_heap_stack section, used to check that there is enough RAM left */
  ._user_heap_stack :
  {
    . = ALIGN(8);
    PROVIDE ( end = . );
    PROVIDE ( _end = . );
    . = . + _Min_Heap_Size;
    . = . + _Min_Stack_Size;
    . = ALIGN(8);
  } >RAM



  /* Remove information from the standard libraries */
  /DISCARD/ :
  {
    libc.a ( * )
    libm.a ( * )
    libgcc.a ( * )
  }

  .ARM.attributes 0 : { *(.ARM.attributes) }
}

和 makefile (我添加到预先生成的文件中的部分位于#edit begin and #edit end评论:

TARGET = myproject
#edit begin
MASTER = master
SLAVE = slave
#edit end


DEBUG = 1
# optimization
OPT = -Og


BUILD_DIR = build

# C sources
C_SOURCES =  \
Src/main.c

#edint begin
SLAVE_SOURCES = \
Src/slave.c

MASTER_SOURCES = \
Src/master.c \
#edit end

PREFIX = arm-none-eabi-
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
# either it can be added to the PATH environment variable.
ifdef GCC_PATH
CC = $(GCC_PATH)/$(PREFIX)gcc
AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
CP = $(GCC_PATH)/$(PREFIX)objcopy
SZ = $(GCC_PATH)/$(PREFIX)size
else
CC = $(PREFIX)gcc
AS = $(PREFIX)gcc -x assembler-with-cpp
CP = $(PREFIX)objcopy
SZ = $(PREFIX)size
endif
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S

CPU = -mcpu=cortex-m3

# fpu
# NONE for Cortex-M0/M0+/M3

# float-abi


# mcu
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)

# macros for gcc
# AS defines
AS_DEFS =

# C defines
C_DEFS =  \
-DUSE_HAL_DRIVER \
-DSTM32F103xB


# AS includes
AS_INCLUDES =

# C includes
C_INCLUDES =  \
-IInc \


# compile gcc flags
ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections

CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections

ifeq ($(DEBUG), 1)
CFLAGS += -g -gdwarf-2
endif


# Generate dependency information
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"


# link script
LDSCRIPT = STM32F103RBTx_FLASH.ld

# libraries
LIBS = -lc -lm -lnosys
LIBDIR =
LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections

# default action: build all
all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin

#edit begin
master: $(BUILD_DIR)/$(MASTER).elf $(BUILD_DIR)/$(MASTER).hex $(BUILD_DIR)/$(MASTER).bin
slave: $(BUILD_DIR)/$(SLAVE).elf $(BUILD_DIR)/$(SLAVE).hex $(BUILD_DIR)/$(SLAVE).bin
#edit end

#######################################
# build the application
#######################################
# list of objects
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
vpath %.c $(sort $(dir $(C_SOURCES)))
# list of ASM program objects
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
vpath %.s $(sort $(dir $(ASM_SOURCES)))
$(info OBJECTS is $(OBJECTS))

#edit begin
MASTER_OBJ = $(addprefix $(BUILD_DIR)/,$(notdir $(MASTER_SOURCES:.c=.o)))
vpath %.c $(sort $(dir $(MASTER_SOURCES)))
$(info MASTER_OBJ is $(MASTER_OBJ))

MASTER_OBJ += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
vpath %.s $(sort $(dir $(ASM_SOURCES)))
#edit end

$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
    $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@

$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
    $(AS) -c $(CFLAGS) $< -o $@

$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
    $(CC) $(OBJECTS) $(LDFLAGS) -o $@
    $(SZ) $@

#edit begin
$(BUILD_DIR)/$(MASTER).elf: $(MASTER_OBJ) Makefile
    $(CC) $(MASTER_OBJ) $(LDFLAGS) -o $@
    $(SZ) $@

$(BUILD_DIR)/$(SLAVE).elf: $(SLAVE_OBJ) Makefile
    $(CC) $(SLAVE_OBJ) $(LDFLAGS) -o $@
    $(SZ) $@
#edit end

$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
    $(HEX) $< $@

$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR)
    $(BIN) $< $@

$(BUILD_DIR):
    mkdir $@

clean:
    -rm -fR $(BUILD_DIR)

-include $(wildcard $(BUILD_DIR)/*.d)

# *** EOF ***

的结果sudo make在终端中:

OBJECTS is build/main.o 
MASTER_OBJ is build/master.o
mkdir build
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb   -DUSE_HAL_DRIVER -DSTM32F103xB -IInc  -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/main.d" -Wa,-a,-ad,-alms=build/main.lst Src/main.c -o build/main.o
arm-none-eabi-gcc build/main.o  -mcpu=cortex-m3 -mthumb   -specs=nano.specs -TSTM32F103RBTx_FLASH.ld  -lc -lm -lnosys -Wl,-Map=build/myproject.map,--cref -Wl,--gc-sections -o build/myproject.elf
arm-none-eabi-size build/myproject.elf
   text    data     bss     dec     hex filename
     88       8    1568    1664     680 build/myproject.elf
arm-none-eabi-objcopy -O ihex build/myproject.elf build/myproject.hex
arm-none-eabi-objcopy -O binary -S build/myproject.elf build/myproject.bin

正如您所看到的,代码编译没有错误。 和结果sudo make master(运行后sudo make clean):

MASTER_OBJ is build/master.o
mkdir build
arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb   -DUSE_HAL_DRIVER -DSTM32F103xB -IInc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/master.d" -Wa,-a,-ad,-alms=build/master.lst Src/master.c -o build/master.o
arm-none-eabi-gcc build/master.o  -mcpu=cortex-m3 -mthumb   -specs=nano.specs -TSTM32F103RBTx_FLASH.ld  -lc -lm -lnosys  -Wl,-Map=build/dual-interface.map,--cref -Wl,--gc-sections -o build/master.elf
c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol Reset_Handler; defaulting to 08000000
arm-none-eabi-size build/master.elf
   text    data     bss     dec     hex filename
     88       8    1568    1664     680 build/master.elf
arm-none-eabi-objcopy -O ihex build/master.elf build/master.hex
arm-none-eabi-objcopy -O binary -S build/master.elf build/master.bin
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb   -DUSE_HAL_DRIVER -DSTM32F103xB -IInc -IDrivers/STM32F1xx_HAL_Driver/Inc -IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy -IDrivers/CMSIS/Device/ST/STM32F1xx/Include -IDrivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"master"  -mcpu=cortex-m3 -mthumb   -specs=nano.specs -TSTM32F103RBTx_FLASH.ld  -lc -lm -lnosys  -Wl,-Map=build/dual-interface.map,--cref -Wl,--gc-sections  Src/master.c build/master.elf build/master.hex build/master.bin   -o master
c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: build/master.elf: in function `_init':
(.text+0x40): multiple definition of `_init'; c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp/crti.o:(.init+0x0): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: build/master.elf: in function `_fini':
(.text+0x4c): multiple definition of `_fini'; c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp/crti.o:(.fini+0x0): first defined here
build/master.bin: file not recognized: file format not recognized
collect2.exe: error: ld returned 1 exit status
make: *** [master] Error 1

我该如何解决这个问题?

您可以使用“gnu make”和“arm-none-eabi-gcc”作为编译器在Windows中重新创建错误。在 Linux 中,如果出现 stdint.h 错误,您还需要安装提到的软件包之一here.


最后gcc run ...

arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb   -DUSE_HAL_DRIVER -DSTM32F103xB -IInc  -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"master"  -mcpu=cortex-m3 -mthumb   -specs=nano.specs -TSTM32F103RBTx_FLASH.ld  -lc -lm -lnosys -Wl,-Map=build/myproject.map,--cref -Wl,--gc-sections  Src/master.c build/master.elf build/master.hex   -o master

...产生错误的本身就是错误的。它从何而来?

请注意-o master最后:makefile 中没有提供任何规则可以生成这样的编译,但它正在构建一个具有相同名称的文件,master,作为目标目标。这是运用内置隐式规则的结果用于从相应名称的 C 源文件构建可执行文件。

有几种情况导致了这种情况。

  1. 请求构建目标master。在这种情况下,它是目标,但它也足以成为另一个目标的先决条件,即make想要建造。

  2. makefile 没有提供任何构建方法master.

  3. 有一个源文件名为master.c。虽然它在子目录中Src,有一个%vpath指令告诉make将该目录中的文件视为出现在项目根目录中。

此外,

  1. 内置规则显然包括目标声明的先决条件master (build/master.elf and build/master.hex)在编译命令中。这没有记录或标准版本make我检查过,这就是多重​​定义错误的原因:gcc正在构建一个可执行文件,因此它提供了标准_init and _fini函数,但已经构建的可执行文件build/master.elf链接中包含的也有这些。

因为您实际上并不想要名为master构建后,一个好的解决方案是声明该目标是假的:

.PHONY: master

这有几个有用的效果,但对于您的目的而言,关键是它会导致跳过对该目标的隐式规则搜索。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c项目makefile多重定义错误 的相关文章

  • 如何在 wpf 密码框设置一些默认文本? [复制]

    这个问题在这里已经有答案了 可能的重复 WPF 中的水印文本框 https stackoverflow com questions 833943 watermark textbox in wpf 我可以知道如何在 WPF 的密码框中放入一些
  • LINQ TO ENTITY 无法与枚举类型进行比较

    下面是枚举叶子 public enum Leaves Annual 0 Medical 1 Hospitalization 2 Unpaid 3 下面是linq查询 public ActionResult ApproveLeave int
  • Microsoft Graph API 授权错误:无效受众

    我知道这是一个很长的问题 但如果有人能与我分享他们的想法或经验 我真的很感激 因为我已经解决这个问题几天了 现在正在尝试很多事情 我有一个 ASP Net Core 3 1 Web API 应用程序和一个 ASP NET Core 3 1
  • Windows Server / Datacenter:设置 CPU 关联性 > 64 个核心

    SetThreadAffinityMask 允许为 64 个逻辑核心 处理器 设置关联掩码 但是 Windows Datacenter 最多可以有 64 个 CPU 每个 CPU 都有多个内核 请参阅here http social tec
  • 正确别名向量

    我无法在其他地方找到答案 所以我想我只需要问这个 我正在尝试获取向量 其中存储 int 指针 的别名 如下所示 void conversion Engine ENGINES The Engine class has a vector of
  • 如何设置属性选择器的值 Expression>

    我需要使用模式工厂的想法将 Person 类实体中的实体属性 Address 与 FactoryEntities 类中的表达式 linq 相关联 看看这就是我所拥有的并且我想要做的 Address address new Address a
  • 在 WinForms 中显示输入对话框

    我想在我的 WinForm 应用程序中显示输入模式 我浏览过网络 但没有找到执行此操作的良好模式 我知道我必须创建另一个表单 并使用 ShowDialog 方法 你是对的 请注意 模式对话框在关闭时不会自动处理 与非模式对话框不同 因此您需
  • boost::unordered_map 是...有序的吗?

    我有一个 boost unordered map 但它看起来是有序的 给我一种压倒性的 你做错了 的感觉 为什么输出是这样的 我希望底层的哈希算法能够随机化这个顺序 include
  • 在 Asp.net Web API 中处理 CORS 预检

    我的架构中有三个应用程序 它们位于同一服务器上 但具有不同的端口号 A Token Application port 4444 Asp net WebApi B API Application port 3333 Asp net WebAp
  • 这个对象的内存会是什么样子?

    我想知道这个类 它的对象 的内存布局是什么样的 class MyClass string myString int myInt public MyClass string str int i myString str myInt i MyC
  • 将 size_t 变量添加到指针

    我想向指针添加 size t 类型 有些像这样 void function size t sizeA size t sizeB void pointer pointer malloc sizeA pointer pointer sizeB
  • 实体框架..自引用表..获取深度=x的记录?

    我成功地在实体框架中使用自引用表 但我不知道如何获得所需深度的记录 这应该是什么逻辑 Model public class FamilyLabel public FamilyLabel this Children new Collectio
  • 如何使用 GCC 在 C 上编译库?

    我用这些文件创建了一个库pila h and pila c 我编译文件pila c with gcc pila c c这个库运行良好 我已经测试过了 然后我又做了一个图书馆 这个库有文件pila funciones extra h and
  • LINQ 中的左外连接

    下面的代码不断给我一个错误消息 你调用的对象是空的 var partsWithDefaults from partsList1 in p join partsList2 in d on new PartNo partsList1 PartN
  • 宏中 do { } while(0) 与 ({ }) 的优点?

    Stack Overflow 上有很多关于使用的问题do while 0 在宏中 但这有点不同 我明白为什么do while 0 用于将多行代码包装在宏扩展中 但我经常看到另一种形式 The form 的优点是它是一个表达式并且可以有 返回
  • C# 中的自定义按钮:如何删除悬停背景?

    我正在尝试使用 Visual Studio 2005 对我的表单 其 FormBorderStyle none 执行自定义按钮 我在链接到该按钮的 ImageList 中有我的 3 种状态按钮图像 this btnClose AutoSiz
  • 初学者友好的方法来获取所有文件和目录的列表

    使用 NET 3 0 我得到了下面的方法 它可以正确返回指定目录的所有文件和目录 以及子目录 的集合 如果可能的话 我想将其简化为仅使用我非常熟悉的结构 具体来说 有以下几点我不太清楚 1 IEnumerable
  • 虚拟键盘(类似 Swype 键盘)Windows 窗体应用程序 C#

    我正在尝试使用 c 在 Windows 窗体中创建一个类似 swype 的键盘 我有两个问题 A 我无法重现手指滑动动作 b 我无法识别不同按键下的字母 对于第一个问题 我使用了 Graphics 类和 Pen 类 并像这样使用它 bool
  • 在.Net中使用ObjectCache缓存对象并设置过期时间

    我陷入了一个场景 我的代码如下 更新 它不是关于如何使用数据缓存 我已经在使用它及其工作 它是关于扩展它 以便该方法在到期时间和从外部源获取新数据之间不会进行调用 object string this GetDataFromCache ca
  • 如何为单个函数设置 ICC 属性“fp-model precision”,以防止关联优化?

    我正在实施卡汉求和 http en wikipedia org wiki Kahan summation algorithm 在支持 gcc47 gcc48 clang33 icc13 和 icc14 编译的项目中 作为该算法的一部分 我想

随机推荐

  • 如何在 SQL Server 2014 中启用/安装全文搜索

    这个问题可能有一个非常简单的答案 但我不知道如何在 SQL Server 2014 中启用全文搜索 过去几个小时我一直在网上搜索 一些关于 SQL Server 2012 的帖子说它在安装过程中的功能中 但我去了那里 但没有启用它的选项 自
  • 从文本区域读取时不保留换行符

    我的 java web 应用程序从文本区域获取内容 并通过电子邮件发送相同的内容 我面临的问题是 使用以下命令读取相同内容时 文本区域消息中的换行符不会保留 request getParameter message 有什么线索可以解决吗 T
  • 如何以非交互式方式为 gcloud CLI 传递数据库密码?

    我正在尝试以非交互式方式将密码传递给 gcloud sql connect 命令 我想要实现的不是要求输入密码 而是以某种方式将其传递到命令中 不确定是否可能 基于文档 但另一方面 它对于自动化任务非常有用 我坚信有一种方法可以做到这一点
  • 无法创建 externalDataReference 临时文件

    我在我的 iOS 项目中使用 Core Data 我通过以下方式使用多个上下文 我有一个persisent store context它在私有队列上运行并将更改存储到持久存储中 我有一个main queue context那是的孩子pers
  • Android:Eclipse MAT 似乎没有显示我的应用程序的所有对象

    我通过插入语句创建了一个 hprof 文件Debug dumpHprofData sdcard myapp hprof 在我的应用程序的代码中 然后 我通过 hprof conv 运行 hprof 文件 并在 Eclipse 中打开转换后的
  • 子类中的狭义属性类型

    今天我遇到了一个奇怪的行为 我没想到 Objective C 编译器会允许 在 UITableViewCell 中 有一个名为 imageView 的 UIImageView 类型的属性 我对 UITableViewCell 进行了子类化
  • iDangero.us Swiper 多个实例

    我正在尝试添加多个刷卡器 http www idangero us swiper 在我的网站上 我想添加滑动器动态 因此我为每个滑动器使用相同的类 每个滑动器看起来像这样 div class swiper container div cla
  • JavaFX 任务一旦取消或完成一次就不会重新运行

    我正在做一个基本的 Java FX 任务练习 线程上的计数范围为 1 到 150 当前值显示在标签上并更新进度条 有一个按钮可以启动任务 取消任务以及查看任务的取消状态 让我困惑的是为什么我在取消线程一次后无法重新运行任务 如果我让任务完成
  • 对调用另一个方法的方法进行单元测试

    对调用多个方法的方法进行单元测试的最佳方法是什么 例如 modify string value if value Length gt 5 replaceit value else changeit value 该伪代码有一个修改方法 当前
  • Solr 4 中可以更新 uniqueKey 吗?

    我的 uniqueKey 定义为
  • 使用 Gradle - 在 META-INF/spring.factories 中找不到自动配置类

    尝试在 Spring Boot 上使用 IntelliJ 中的 gradle 中的 jar 函数部署我构建的 jar 它使用 bootrun 从我的 IDE 本地运行良好 但没有将 jar 放在 Linux 服务器上 服务器上的完整错误是
  • Sklearn Pipeline:自动错过一项功能

    我创建了一个自定义分类器 虚拟分类器 下面是定义 我还添加了一些打印语句和全局变量来捕获值 class FeaturePassThroughClassifier ClassifierMixin def init self pass def
  • 以编程方式触发来自 Google Play 的应用更新

    在 Google Play 开发者控制台中提交应用程序更新并且所有用户都可以看到该应用程序后 任何设备需要多长时间才能选择更新 假设全天都有有效的互联网 WiFi 连接 并且此应用程序已开启自动更新 我能否以编程方式向 Google Pla
  • React 正在将旧状态发送给其父级

    当我将子组件的状态发送到其父组件时 React 会将旧状态发送到父组件 我想在每次单击正常工作并调用函数handleClick 的列表项时发送更新的状态 但当我打电话时sendStateToParent 它正在过去旧的状态 假设我点击了IT
  • ASP.NET MVC 中的 AutoMapper 更新操作

    对于某些人来说 这可能非常简单 但是我有点困惑 找不到合适的例子 假设我正在使用视图模型 并且我的 POST 操作在该视图模型中进行 通常我会按照以下方式做一些事情 HttpPost public ActionResult Update U
  • 无法在 Spark SQL 中生成 UUID

    下面是代码块和收到的错误 gt creating a temporary views sqlcontext sql CREATE TEMPORARY VIEW temp pay txn stage USING org apache spar
  • 将所有输出 dll 放在 Visual Studio 的公共目录中

    我有几个不同的解决方案 其中某些项目可能依赖于其他解决方案中项目的输出 为了管理这个问题 我在构建后将 dll 文件从每个项目中的 bin 文件夹复制到共享库位置 然后将它们从那里复制 引用到依赖项目 然而 随着库解决方案变得越来越大 这往
  • 分组依据但包含“缺失”值

    假设我有以下内容 select case when fcompany Acme then Red when fcompany Acme Rockets then Blue else Green end Color sum fann sale
  • python 有没有办法改变 get 的处理顺序? [复制]

    这个问题在这里已经有答案了 If I do def foo yield from range 0 10 yield from range 10 20 for num in foo print num 我得到一个从 0 到 19 的有序列表
  • c项目makefile多重定义错误

    这个问题是一个对应于创建的repexthis问题 在我的嵌入式 C 项目中 我有两个独立的板 我想为每个板创建两个 c 文件 master c 和 Slave c 其中包含自己的特定main 功能 我使用 stm32cumbemx 生成带有