g++ makefile "was not declared in this scope" for winbase.h 中的元素
g++ makefile "was not declared in this scope" for elements inside winbase.h
我试图编译一个程序,其中包括windows.h,但我得到错误,如"错误:'DCB'未在此范围内声明"对于驻留在winbase.h中的每个元素。我已经将MinGW路径包含到所需的头文件中(还尝试添加-I"C:MinGWx86_64-w64-mingw32include" -lwindows到CFLAGS变量)。建议吗?
# Command variables
CC = g++
DEBUG = -Wall -g
CFLAGS = -m64 -I"C:Program FilesJavajdk1.7.0_21include" $(DEBUG) -c
LFLAGS = -m64 -Wl,--add-stdcall-alias -shared $(DEBUG)
COMP_CMD = $(CC) $(CFLAGS) $<
LINK_CMD = $(CC) $(LFLAGS) $? -o $@
HEAD_STUB_CMD = javah -classpath $(CLASS_PATH) $*
# Path variables
CLASS_PATH = ../bin
INCL_PATH = ../include/
SRC_PATH = ../source/
SUB2 = libsercom/
INCL_PATH2 = $(INCL_PATH)$(SUB2)
SRC_PATH2 = $(SRC_PATH)$(SUB2)
# Define a virtual path for .class in the bin directory
vpath %.class $(CLASS_PATH)
all: sercom.dll
#sercom
SERCOM = sercom
$(SERCOM).dll: $(SERCOM).o
$(LINK_CMD)
$(SERCOM).o : $(SRC_PATH2)win$(SERCOM).c $(INCL_PATH2)$(SERCOM).h $(INCL_PATH2)err$(SERCOM).h
$(COMP_CMD)
clean :
rm *.o *.dll *.h
我建议您打开标题并查看错误列表中列出的名称。它们很可能在那里被包装在预处理器指令中。如果存在,请尝试在CFLAGS中传递所需的定义。
UPD:例如
#if (_WIN32_WINNT>= 0x0500)
WINBASEAPI BOOL WINAPI GetVolumePathNameA(LPCSTR,LPSTR,DWORD);
如您所见,这将需要一个定义。相关文章:
- "error: no matching function for call to"构造函数错误
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何在C++中从两个单独的for循环中添加两个数组
- 在Linux for Windows上编译C++代码时出错
- 调用专用模板时出错"no matching function for call to [...]"
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 在基于范围的for循环中使用结构化绑定声明
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 正在使用for循环创建QScatterSerie
- Python中的for循环与C++有何不同
- std::memory_order for std::atomic:<T>:wait
- 在更改for循环的第三部分后,未使用for循环结果
- 在 for 循环中查找问题时遇到困难
- 嵌套for循环C++的问题(初学者)
- g++ makefile "was not declared in this scope" for winbase.h 中的元素