gpt4 book ai didi

c++ - 使用-(存档-)gcc命令

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

在编译DLL时,我遇到了许多undefined reference错误,我认为这可能是由于库之间的循环依赖关系引起的。为了解决这个问题,我一直在尝试使用-(文件-)--start-group文件--end-group选项:gcc -Wall -shared Pipeline.cpp -I"C:/Python38/include" -I"C:/Program Files/Pleora Technologies Inc/eBUS SDK/Includes" -I "C:/Python38/Lib/site-packages/numpy/core/include" -L"C:\Users\fmkz78\AppData\Local\Continuum\anaconda3\libs" -L"C:/Program Files/Pleora Technologies Inc/eBUS SDK/Libraries" -o lib.dll -( -lEbInstallerLib64 -lEbTransportLayerLib64 -lEbUtilsLib64 -lPtConvertersLib64 -lPtUtilsLib64 -lPvAppUtils64 -lPvBase64 -lPvBuffer64 -lPvCameraBridge64 -lPvDevice64 -lPvDSSource64 -lPvGenICam64 -lPvGUI64_VC10 -lPvGUI64_VC11 -lPvGUI64_VC12 -lPvGUI64_VC14 -lPvPersistence64 -lPvSerial64 -lPvStream64 -lPvSystem64 -lPvTransmitter64 -lPvVirtualDevice64 -lSimpleImagingLib64 -lpython37 -)这样做会导致gcc: error: unrecognized cpmmand line option '-('错误,并再次导致关闭选项错误。我使用开始和结束组选项遇到相同的问题。我正在使用MinGW gcc编译器在Windows 10上运行。
我是在错误的地方使用它们,还是在安装过程中出现问题?

最佳答案

--start-group and --end-group (缩写为-(-))是linker options
您需要-Wl才能从编译器驱动程序gcc中使用它们,以便它将它们传递给链接器,而不是试图自己理解它们(它不能,因为它没有任何此类开关)。
所以:

-Wl,--start-group
-Wl,--end-group
-Wl,-(
-Wl,-)
没事。
但是这些:
--start-group
--end-group
-(
-)
不是。
顺便说一句,除非您故意从构建中跳过C++标准库(以及其他相关的运行时),否则您可能需要 g++而不是 gcc

关于c++ - 使用-(存档-)gcc命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64283934/

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