gpt4 book ai didi

c++ - 找不到G++库

转载 作者:行者123 更新时间:2023-12-02 10:52:59 26 4
gpt4 key购买 nike

我正在尝试编译我制作的TBB和OpenMp比较程序。使用默认的Visual Studio编译器可以很好地进行编译。因此,我知道TBB的安装正确。但是,我想改用g++。我已经创建了一个Makefile,从我的阅读中知道-ltbb标志。

我的错误是,“c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe:找不到-ltbb” 。

确保我正确链接所有内容并且仍在尝试学习时,我不是专家。

这是我目前的Makefile

CPLUSPLUS = g++ 
OPTFLAGS = -O3
TBB_INCLUDE_PATH = C:\tbb-2020.1-win\tbb\include
TBB_LIBRARY_PATH = C:\tbb\tbb\lib\intel64\vc14

all: pps

pps: avl.o main.o parPlaneSweep.o
$(CPLUSPLUS) -I$(TBB_INCLUDE_PATH) -L$(TBB_LIBRARY_PATH) $(OPTFLAGS) -o $@ $^ -ltbb

avl.o: avl.h avl.c
$(CC) -c $(OPTFLAGS) -fPIC avl.c

main.o: main.cpp parPlaneSweep.h
$(CPLUSPLUS) -c $(OPTFLAGS) -fopenmp main.cpp

parPlaneSweep.o: parPlaneSweep.h parPlaneSweep.cpp
$(CPLUSPLUS) -c $(OPTFLAGS) -fPIC -fopenmp parPlaneSweep.cpp

clean:
rm *.o
rm pps


enter image description here

enter image description here

最佳答案

请更新您的问题,而不要在其他网站上指出其他人。

首先,即使在Windows上,也绝对不要在makefile中使用反斜杠(Windows上有异常(exception),但这种情况很少见)。始终使用正斜杠作为目录分隔符。

其次,您定义了TBB_INCLUDE_PATHTBB_LIBRARY_PATH变量,但是您从不使用它们。仅提及变量的名称就不会使用该变量。您必须将其包含在$(...)中才能使用,例如$(TBB_INCLUDE_PATH)

最后,所有常见的链接器都是单遍链接器,这意味着将库和目标文件放在链接行上的顺序至关重要。您应该始终将目标文件放在首位,将库放在最后。如果您有多个库,则它们出现的顺序也可能很重要。您的链接行应如下所示:

pps: avl.o main.o parPlaneSweep.o
$(CPLUSPLUS) -I$(TBB_INCLUDE_PATH) -L$(TBB_LIBRARY_PATH) $(OPTFLAGS) -o $@ $^ -ltbb

如果您想知道 $@$^的含义,可以阅读 automatic variables

关于c++ - 找不到G++库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61257946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com