如何在 c c ++ 混合生成文件中为 c 对象添加附加规则?
How to add an additional rule for c objects in a c c++ mixed makefile?
我在Windows机器上的C ++代码库中添加了一些C代码;它在Windows Visual Studio上运行得很好;但是我很难让它在Linux上运行。
下面的文件是使用生成文件运行的 subdir.mk。 我正在 linux64 系统上编辑这个为纯 c++ 编写的文件,以添加我的 c 更改。我添加了 cc 源,如下所示。我是新手。我听说如果你有标志,知道如何构建,但现有文件有这个规则%.o:.。/%.cpp 没有它它就无法工作。我尝试添加%.o:.。/%.c 以不同的方式(使用 ,然后通过管道(,但没有成功。
你看到我在这里做错了什么吗?欢迎任何反馈。感谢!
CC=gcc
CXX=g++
CXXFLAGS=-Wall -g
CCFLAGS=-g
# Add inputs and outputs from these tool invocations to the build variables
CPP_SRCS +=
../x.cpp
../y.cpp
../main.cpp
CC_SRCS +=
../z__c.c
OBJS +=
./x.o
./y.o
./z__c.o
./main.o
CPP_DEPS +=
./x.d
./y.d
./main.d
icpc='/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/bin/g++'
CC='/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/bin/gcc'
# Each subdirectory must supply rules for building sources it contributes
%.o: ../%.cpp
#%.o: ../%.c
@echo 'Building file: $<'
@echo 'Invoking: G++ Compiler'
g++ -Wall -mavx -g -O -O1 -std=c++11 -L/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/lib64 -libstdc -libsupc++ -libtsan -libubsan -libvtv -libquadmath -libgcc_s -libgcj -L/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64 -lmkl_mc -lmkl_sequential -lmkl_gf_ilp64 -lmkl_avx -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_gnu_thread -L/home../oed -liboed -liboedlib -I/opt/intel/composer_xe_2013.5.192/mkl/include
-I/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/include -I/home..include -I/home../debug -DDEBUG -DMKL_ILP64
-MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
你不想要这样的东西吗?
CC=gcc
CXX=g++
CXXFLAGS=-Wall -g
CCFLAGS=-g
# Add inputs and outputs from these tool invocations to the build variables
CPP_SRCS +=
../x.cpp
../y.cpp
../main.cpp
CC_SRCS +=
../z__c.c
OBJS +=
./x.o
./y.o
./z__c.o
./main.o
CPP_DEPS +=
./x.d
./y.d
./main.d
icpc='/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/bin/g++'
CC='/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/bin/gcc'
# Each subdirectory must supply rules for building sources it contributes
%.o: ../%.cpp
@echo 'Building file: $<'
@echo 'Invoking: G++ Compiler'
g++ -Wall -mavx -g -O -O1 -std=c++11 -L/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/lib64 -libstdc -libsupc++ -libtsan -libubsan -libvtv -libquadmath -libgcc_s -libgcj -L/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64 -lmkl_mc -lmkl_sequential -lmkl_gf_ilp64 -lmkl_avx -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_gnu_thread -L/home../oed -liboed -liboedlib -I/opt/intel/composer_xe_2013.5.192/mkl/include
-I/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/include -I/home..include -I/home../debug -DDEBUG -DMKL_ILP64
-MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
%.o: ../%.c
@echo 'Building file: $<'
@echo 'Invoking: GCC Compiler'
gcc -Wall -mavx -g -O -O1 -L/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/lib64 -libstdc -libsupc++ -libtsan -libubsan -libvtv -libquadmath -libgcc_s -libgcj -L/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64 -lmkl_mc -lmkl_sequential -lmkl_gf_ilp64 -lmkl_avx -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_gnu_thread -L/home../oed -liboed -liboedlib -I/opt/intel/composer_xe_2013.5.192/mkl/include
-I/opt/shared/sw/x86_64-unknown-linux-gnu/gcc/5.3.0-rhel6/include -I/home..include -I/home../debug -DDEBUG -DMKL_ILP64
-MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
相关文章:
- 队列未添加对象-C++11
- 创建/向容器添加对象时如何使用构造函数/析构函数
- 向 std::map 添加对象和自定义比较<>
- 如何在构造函数的静态列表中添加对象
- C++ std::vector 创建对象然后添加对象与在向量中创建对象之间的区别?
- 重载 + 运算符以使用 int 添加对象
- 如何在数组中添加对象成员
- 为什么类对象的向量在使用push_back添加对象时会删除对象
- 我如何阻止在多个向量中添加对象
- 指针集合和添加对象
- 动态添加对象
- 在c++中向向量添加对象vs向向量添加指针
- 添加c++对象到Objective C集合(NSSet)的麻烦
- 添加对象指针到链表c++
- c++ push_back只向vector中的位置0添加对象
- 在TStringList中添加对象
- 在c++中似乎不能正确地向数组中添加对象
- 使用push_back向vector添加对象工作正常,但使用访问器语法[]添加对象不工作
- 在for循环中向vector中添加对象
- 使用CMake从二进制文件编译并添加对象文件