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