[英]How to build a cross-platform C++ library in Windows and Linux
我是 Linux 用户,也是 C++ 的初学者。 我正在开发一个具有以下结构的小型库
在 Linux 中,我通常使用 gcc 编译 C++,当我有多个依赖项时,我使用 make 和 makefile。 在当前案例的下方
CXX = g++
CXXFLAGS = -g -Wall
DLIBS = -lm -lgsl -lgslcblas -lgmp -lquadmath
DEPS = ../../include
TEST1 = ../../output/test1
TEST2 = ../../output/test2
TEST3 = ../../output/test3
vpath %.h $(DEPS)
main: *.cpp $(DEPS)/*.h $(TEST1)/*.h
g++ $(CXXFLAGS) -I $(DEPS) -I $(TEST1) *.cpp -o main $(DLIBS)
all: test1 test2 test3
test1: *.cpp $(DEPS)/*.h $(TEST1)/*.h
g++ $(CXXFLAGS) -I $(DEPS) -I $(TEST1) *.cpp -o main $(DLIBS)
./main test1
test2: *.cpp $(DEPS)/*.h $(TEST2)/*.h
g++ $(CXXFLAGS) -I $(DEPS) -I $(TEST2) *.cpp -o main $(DLIBS)
./main test2
test3: *.cpp $(DEPS)/*.h $(TEST3)/*.h
g++ $(CXXFLAGS) -I $(DEPS) -I $(TEST3) *.cpp -o main $(DLIBS)
./main test3
clean:
rm -f main
我现在必须使我的库跨平台并且能够在 Windows 上编译和运行。
理想情况下,我想保留相同的结构,并可能添加一个包含linux和win子文件夹的构建文件夹,前者具有上述生成文件。 但是我不确定如何在 Windows 上编译它。
在 Windows 中是否有等效项? 我应该将 MSVC 与 MinGW 一起使用吗? 关于灵活可移植性和交叉编译的最佳方法的任何帮助或建议?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.