即使定义了搜索路径,也找不到自定义共享库
Custom shared library cannot be found even when search path defined
我有以下文件:
.
├── combinatorics
│ ├── permutation.cpp
│ └── permutation.h
├── main.cpp
└── math
├── basic.cpp
└── basic.h
我正在尝试通过执行以下步骤来创建共享库:
g++ -c -Wall -std=c++14 -fpic combinatorics/permutation.cpp -o permutations.o
g++ -c -Wall -std=c++14 -fpic math/basic.cpp -o mathbasic.o
g++ -shared -o combmath.so permutations.o mathbasic.o
g++ -Wall -std=c++14 main.cpp -L. -o output -lcombmath
但我收到以下消息:
/usr/bin/ld: cannot find -lcombmath
collect2: error: ld returned 1 exit status
我做错了什么?
链接选项-lfoo
指示链接器搜索文件
libfoo.so
(共享库)或libfoo.a
(静态库)在指定的
链接器搜索目录(-L/x/y/z
),然后在链接器的默认目录中
搜索目录,当它找到其中一个文件时停止,并且
如果在同一目录中找到两者,则首选 libfoo.so
。
您的链接:
g++ -Wall -std=c++14 main.cpp -L. -o output -lcombmath
因此,要成功,您之前需要构建 libcombmath.so
在与命令相同的目录中:
g++ -shared -o libcombmath.so permutations.o mathbasic.o
并且未构建 combmath.so
,正如您使用以下命令所做的那样:
g++ -shared -o combmath.so permutations.o mathbasic.o
我有以下文件:
.
├── combinatorics
│ ├── permutation.cpp
│ └── permutation.h
├── main.cpp
└── math
├── basic.cpp
└── basic.h
我正在尝试通过执行以下步骤来创建共享库:
g++ -c -Wall -std=c++14 -fpic combinatorics/permutation.cpp -o permutations.o
g++ -c -Wall -std=c++14 -fpic math/basic.cpp -o mathbasic.o
g++ -shared -o combmath.so permutations.o mathbasic.o
g++ -Wall -std=c++14 main.cpp -L. -o output -lcombmath
但我收到以下消息:
/usr/bin/ld: cannot find -lcombmath
collect2: error: ld returned 1 exit status
我做错了什么?
链接选项-lfoo
指示链接器搜索文件
libfoo.so
(共享库)或libfoo.a
(静态库)在指定的
链接器搜索目录(-L/x/y/z
),然后在链接器的默认目录中
搜索目录,当它找到其中一个文件时停止,并且
如果在同一目录中找到两者,则首选 libfoo.so
。
您的链接:
g++ -Wall -std=c++14 main.cpp -L. -o output -lcombmath
因此,要成功,您之前需要构建 libcombmath.so
在与命令相同的目录中:
g++ -shared -o libcombmath.so permutations.o mathbasic.o
并且未构建 combmath.so
,正如您使用以下命令所做的那样:
g++ -shared -o combmath.so permutations.o mathbasic.o