我有一个在 gcc 中使用的 c 库。该库具有扩展名 .lib 但始终作为静态库链接。如果我编写一个将库用作 c 代码的程序,那么一切都很好。但是,如果我将文件重命名为 .cpp (在 c/c++ 中执行简单的操作),我会得到未定义的引用。这些是我为测试目的编写的简单小程序,所以没有花哨的东西。我编译使用:
gcc -g -Wall -I <path to custom headers> -o program main.c customlibrary.lib -lm -lpthread
上面的工作就像一个魅力。然而:
g++ -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread
或者
gcc -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread -lstdc++
导致对 customlibrary.lib 中任何函数的未定义引用。我尝试创建一个名为 customlibrary.a 的符号链接,但没有成功。
为什么 g++ find 不能识别我的库。不幸的是,我无法访问库的源代码,但是将 c-lib 链接到 c++ 应该不是问题,对吧?