我正在尝试使用编译命令通过Cygwin在Windows上编译我的程序:

g++ ping.cpp -I./include -L./lib -lchartdir50

我正在使用一个名为ChartDirector的API,它为我绘制图表。我之前从未以这种方式链接库(通常我是通过Visual Studio完成的),所以我对此有点新鲜。我有一个非常大的错误列表,所以我不会列出所有错误,但我会列出一个只是为了澄清我得到的链接器错误的类型:

(.text

我正在尝试使用编译命令通过Cygwin在Windows上编译我的程序:

g++ ping.cpp -I./include -L./lib -lchartdir50

我正在使用一个名为ChartDirector的API,它为我绘制图表。我之前从未以这种方式链接库(通常我是通过Visual Studio完成的),所以我对此有点新鲜。我有一个非常大的错误列表,所以我不会列出所有错误,但我会列出一个只是为了澄清我得到的链接器错误的类型:

<*>

所有这些都是对'xxx'错误的未定义引用。

我在./include中有一堆头文件,在./lib中有一个名为chartdir50.lib的库

我的编译线出了什么问题?

ZN9BaseChartD1Ev[BaseChart::~BaseChart()]+0x4f): undefined reference to '_CBaseChart_destroy'

所有这些都是对'xxx'错误的未定义引用。

我在./include中有一堆头文件,在./lib中有一个名为chartdir50.lib的库

我的编译线出了什么问题?

有帮助吗?

解决方案 3

嗯......那很奇怪。我使用的是64位系统,但出于某种原因,我尝试使用32位库并进行编译。谢谢!

其他提示

我不确定 .lib 是否已使用Visual C ++编译?

如果是,我不认为它与GCC兼容,您必须使用GCC / G ++编译库并使用该文件或使用兼容的二进制文件,如果您无权访问源。

我之前从未使用过该库,但是当我用Google搜索,我注意到其他人尝试 - lchartdir 而不是 -lchartdir50 ,所以你应该试一试。

我假设lib也是用gcc创建的。

AFAIK .lib是静态库,因此您不必使用-l编译器开关指向它。

只需在命令行中将其用作另一个文件,例如

g ++ ping.cpp -I./include -L./lib {lib path to here} /chartdir50.lib

第h

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top