我正在尝试使用 g++ 在 windows cygwin 平台上构建共享库,然后将其与另一个 cpp 文件链接:我使用以下命令:
// generate object file
g++ -g -c -Wall -fPIC beat11.cpp -o beat11.o
// to generate library from the object file
g++ -shared -Wl,-soname,libbeat.so.1 -o libbeat.so.1.0.1 beat11.o -lc
// to link it with another cpp file; -I option to refer to the library header file
g++ -L. -lbeat -I . -o checkbeat checkbeat.cpp
链接时,出现以下错误:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld:
cannot find -llibbeat.so.1.0.1
collect2: ld returned 1 exit status
图书馆创建得很好,但我只能找到 libbeat.so.1.0.1,而不是 libbeat.so 或 libbeat.so.1(或者他们不应该在那里?)
其他问题之一建议创建指向 libbeat.so.1.0.1 的符号链接,但这也不起作用