我正在尝试创建一个库,将来可以与 R 集成,但也可以在命令行上使用
我的第一步是创建一个库,.a 或 .so
这是我的制作文件。它编译得很好,但是当我查看文件夹时是空的(这意味着我不能在我的 wilxtest.cpp 中使用它
EXTERNALLIBS = -lnetcdf_c++ -lgsl -lgslcblas
WILXAPP = src/wilxtest.cpp
CXX = g++
CXXFLAGS = -Wall -ggdb
LIBOBJS: src/wilcoxonParallelTests.o
LIBRARY: lib/WilcoxonParallelTests.a
$(LIBRARY): $(LIBOBJS)
$(CXX) $(CXXFLAGS) ar cr $(LIBRARY) $(LIBOBJS) $(EXTERNALLIBS)
bin/Debug/WilxAstakTest: $(WILXAPP)
$(CXX) $(CXXFLAGS) -o $@ $^ $(EXTERNALLIBS)
Debug: $(LIBRARY) bin/Debug/WilxAstakTest
MkDirs:
mkdir -p obj
mkdir -p lib
mkdir -p bin/Debug
cleanDebug:
rm -rf obj/*
rm -rf lib/*
rm -rf bin/Debug/*
编辑:
在 LIBOBJS 和 LIBRARY 之后我有“:”而不是“=”。我也没有创建目标文件的目标。这是更新的版本:
EXTERNALLIBS = -lnetcdf_c++ -lgsl -lgslcblas
WILXAPP = src/wilxtest.cpp
CXX = g++
CXXFLAGS = -Wall -ggdb
LIBCPP = src/wilcoxonParallelTests.cpp
LIBOBJS = obj/wilcoxonParallelTests.o
LIBRARY = lib/WilcoxonParallelTests.a
$(LIBOBJS): $(LIBCPP)
$(CXX) $(CXXFLAGS) -c $(LIBCPP) -o $(LIBOBJS)
$(LIBRARY): $(LIBOBJS)
ar -cr $(LIBRARY) $(LIBOBJS)
bin/Debug/WilxAstakTest: $(WILXAPP) $(LIBRARY)
$(CXX) $(CXXFLAGS) -o $@ $^ $(EXTERNALLIBS)
Debug: $(LIBRARY) bin/Debug/WilxAstakTest
MkDirs:
mkdir -p obj
mkdir -p lib
mkdir -p bin/Debug
cleanDebug:
rm -rf obj/*
rm -rf lib/*
rm -rf bin/Debug/*