我对我的Makefile有个很混乱的问题
我正在使用它构建一个具有条件编译的linux和windows的单元测试可执行文件。
对于从src代码构建对象文件的规则,它遗漏了某些文件。它似乎没有一个模式,比如所有丢失的文件都来自某个特定的目录--它只是随机地将我的src文件中的一些输出出来。
我的Makefile看起来如下:
TARGET := test_glamdring2
program_NAME := $(TARGET)
#WIN32 - need to install hg on WIN32 platform for this line to work
#HGVERSION:= $(sh
我现在的makefile有一些问题。我有一个cpp文件和一个h文件。我正在尝试使用c++11标准进行编译。这是我的makefile:
OBJECTS = main.o
#List all object files here separated by a space
HEADERS = main.h
#List all header files here seperated by a space
lab8: $(OBJECTS)
g++ $^ -o program3
%.o: %.cpp $(HEADERS)
g++ -std=c+
我正在使用2013。我在C源文件(file1.c)中声明了一个全局变量,并在C++源文件(file2.cpp)中定义的方法中使用了该变量。两个文件中包含的标题将变量声明为extern。项目属性C\C++ -> Advanced -> compile as设置为defualt,根据文档,这意味着编译器使用文件扩展名来推断文件类型。此设置将导致unresolved external symbol链接错误。如果我将此选项设置为Compile as C code或Compile as C++ code,则项目编译和链接时不会出现错误。我不明白这种行为。(顺便说一句,在linux/GCC下,
布昂·乔诺
我的C++构建在GCC 10.2上开始失败,从x86_64交叉编译到ARM
{standard input}: Assembler messages:
{standard input}:2186487: Warning: end of file not at end of a line; newline inserted
arm-linux-gnueabihf-g++: fatal error: Killed signal terminated program cc1plus
我没有构建任何可以附加换行符的显式.asm文件,这是在用g++编译C++源文件时发生的。我的调试选项是什么
sudo apt-get install gcc-10 g++-10:
Reading package lists... Done
Building dependency tree
Reading state information... Done
g++-10 is already the newest version (10.3.0-1ubuntu1~20.04).
gcc-10 is already the newest version (10.3.0-1ubuntu1~20.04).
0 upgraded, 0 newly installed, 0 to remove a
试图交叉编译一个android应用程序从linux使用arm-linux-androideabi-g++,我得到一个错误,头文件cstdarg是找不到的。
common.h:27:19: fatal error: cstdarg: No such file or directory
compilation terminated.
如果我查看/usr/arm-linux-androideabi/include/,则头不存在,但存在其他c++头文件。我怎样才能解决这个问题?