如何在C ++中的.so文件中包含库

时间:2018-09-28 08:06:12

标签: c++

我正在尝试依赖于FTDI库来编译.so文件。我不确定如何包括该库,以便正确编译。 (以下是我的最佳猜测)。这可能还是有其他解决方法?

shared: pldevice pldeviceenttecpro pluniverse
    $(CC) -shared  -Wl,-soname,libplanklight.so -o libplanklight.so\
    -L/usr/local/lib -lftd2xx \
    pldevice.o pldeviceenttecpro.o pluniverse.o

编辑:这是输出:

g++ -fPIC -c pldevice.cpp
g++ -fPIC -c pldeviceenttecpro.cpp
g++ -fPIC -c pluniverse.cpp
g++ -shared  -Wl,-soname,libplanklight.so -o libplanklight.so\
-L/usr/local/lib -lftd2xx \
pldevice.o pldeviceenttecpro.o pluniverse.o
/usr/bin/x86_64-linux-gnu-ld: cannot open output file   libplanklight.so-L/usr/local/lib: No such file or directory
collect2: error: ld returned 1 exit status
Makefile:5: recipe for target 'shared' failed
make: *** [shared] Error 1

1 个答案:

答案 0 :(得分:4)

您缺少空格。

 $(CC) -shared  -Wl,-soname,libplanklight.so -o libplanklight.so \
                                                                ^^
                                                     Add a space here

\只是使命令在下一行继续,所以当您拥有

-o libplanklight.so\
-L/usr/local/lib 

它将与-o libplanklight.so-L/usr/local/lib

但是您想要-o libplanklight.so -L/usr/local/lib