我正在尝试使用编译命令通过Cygwin在Windows上编译我的程序:
g++ ping.cpp -I./include -L./lib -lchartdir50
我正在使用一个名为ChartDirector的API,它为我绘制图表。我之前从未以这种方式链接库(通常我是通过Visual Studio完成的),所以我对此有点新鲜。我有一个非常大的错误列表,所以我不会列出所有错误,但我会列出一个只是为了澄清我得到的链接器错误的类型:
(.text$_ZN9BaseChartD1Ev[BaseChart::~BaseChart()]+0x4f): undefined reference to '_CBaseChart_destroy'
所有这些都是对'xxx'错误的未定义引用。
我在./include中有一堆头文件,在./lib中有一个名为chartdir50.lib的库
我的编译线出了什么问题?
答案 0 :(得分:1)
我不确定.lib
是否已使用Visual C ++编译?
如果是,我不认为它与GCC兼容,您必须使用GCC / G ++编译库并使用该文件或使用兼容的二进制文件,如果您无权访问源。
答案 1 :(得分:1)
我之前从未使用过该库,但是当我googled时,我注意到其他人尝试 -lchartdir 而不是 -lchartdir50 ,所以你应该试一试。
答案 2 :(得分:1)
答案 3 :(得分:0)
我假设lib也是用gcc创建的。
AFAIK .lib是静态库,因此您不必使用-l编译器开关指向它。
只需在命令行中将其用作另一个文件,例如
g ++ ping.cpp -I./include -L./lib {lib path to here} /chartdir50.lib
第h