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

C++ 使用-(存档-)gcc命令,c++,gcc,C++,Gcc,在编译DLL时,我遇到了许多未定义的引用错误,我认为这些错误可能是由库之间的循环依赖关系引起的。为了解决这个问题,我一直在尝试使用-(存档-)和--开始组存档--结束组选项: 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/inclu

在编译DLL时,我遇到了许多
未定义的引用
错误,我认为这些错误可能是由库之间的循环依赖关系引起的。为了解决这个问题,我一直在尝试使用
-(
存档
-)
--开始组
存档
--结束组
选项:

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”-.dll-(-lEbInstallerLib64-lEbTransportLayerLib64-LebUtilLib64-lPvAppUtils64-lPvBase64-lPvBuffer64-lPvCameraBridge64-lPvDevice64-LpVdsource64-LpVgenicm64-lPvGUI64-LpVc10-lPvGUI64-LpVc12-lPvGUI64-lPvGUI64-LpVc64-LpVSERIALp64-lPvStream64-Lp64-Lp64-LpVvTransmitterE64-LpVv64-lsimpleImagineglib64-lpython37-

执行此操作会导致错误
gcc:error:unrecognized cpmmand line option'-('
)以及关闭选项。使用开始组和结束组选项时,我会遇到相同的问题。我正在Windows 10上使用MinGW gcc编译器运行

我是在错误的地方使用它们,还是我的设置有问题?

(缩写为
-(
-)
)是错误的

您需要
-Wl
从编译器驱动程序
gcc
中使用它们,以便它将它们传递到链接器,而不是试图理解它们本身(它无法理解,因为它没有任何这样的开关)

因此:

你很好

但这些:

--start-group
--end-group
-(
-)
不是

顺便说一下,你可能想要<代码> G++< /COD>,而不是<代码> GCC < /C>,除非你故意跳过C++标准库(和其他相关运行时)从你的构建。

< P>(和简短的形式,<代码> -(< /代码>和代码> ->)/代码>是.

您需要
-Wl
从编译器驱动程序
gcc
中使用它们,以便它将它们传递到链接器,而不是试图理解它们本身(它无法理解,因为它没有任何这样的开关)

因此:

你很好

但这些:

--start-group
--end-group
-(
-)
不是


顺便说一下,你可能想要<代码> G++< /COD>,而不是<代码> GCC ,除非你故意跳过C++标准库(和其他相关运行时)。从您的构建。

GCC的哪个版本?尝试使用详细语法
-Wl,--start group…-Wl,--end group
GCC的哪个版本?尝试使用详细语法
-Wl,--start group…-Wl,--end group