我需要声明一个非常大的n-d数组。它在头文件中定义,并且永不更改。不幸的是,编译主文件需要很长时间,因此我决定将其导入到自己的目标文件中。
这是头文件table.hpp:
Range("B2").Select
Selection.AutoFill Destination:=Range(Cells(2, 2), Cells(2, col_count)), Type:=xlFillDefault
Range(Cells(2, 1), Cells(2, col_count)).Interior.ColorIndex = 6
ActiveSheet.Cells(3, 2).Formula = "=IF(B$1=B$2,""Pass"",""Fail"")"
Range("B3").Select
Selection.AutoFill Destination:=Range(Cells(3, 2), Cells(3, col_count)), Type:=xlFillDefault
Range(Cells(3, 1), Cells(3, col_count)).Interior.ColorIndex = 28
Range(Cells(1, 1), Cells(1, col_count)).Interior.ColorIndex = 39
这是源文件表。cpp:
#pragma once
namespace TABLES
{
extern const int A[10][10][10];
extern const int B[10][10][10];
}
和我的主文件:
namespace TABLES
{
const int A[10][10][10] = {}; // use default for brevity
const int B[10][10][10] = {}; // use default for brevity
}
这是我的Makefile:
#include "tables.hpp"
int main()
{
printf("%d", TABLES::A[0][0][0]);
}
tables.o编译成功,但是我在将tables.o链接到主程序时遇到问题:
CXX = clang++
CFLAGS = -std=c++17 -g -flto -Wall -Iinclude/
SRC = src/
INC = include/
tables.o: $(SRC)tables.cpp $(INC)tables.hpp
$(CXX) $(CFLAGS) -c $(SRC)tables.cpp
main: main.cpp tables.o
$(CXX) $(CFLAGS) -o main main.cpp tables.o