小编Avi*_*vet的帖子

与静态库链接时未定义的引用,但与 src 编译时链接成功

我正在尝试使用 Boost::Test 为该库创建一个 C 库和一个 C++ 测试程序。我在这个问题中发布的代码是我的代码的简化,它显示了完全相同的问题。请帮忙!

这是目录结构。 childlib是我正在尝试创建的库,并且test是测试程序。

> tree
.
`-- src
    |-- main
    |   |-- c
    |   |   `-- childlib.c
    |   |-- childlib.h
    |   `-- makefile
    `-- test
        |-- cpp
        |   `-- test.cpp
        `-- makefile

5 directories, 5 files
Run Code Online (Sandbox Code Playgroud)

我可以childlib成功地制作成一个静态库:

> cd src/main    
> make
gcc -c -fPIC -o c/childlib.o c/childlib.c
ar rcs libchildlib.a c/childlib.o
ranlib libchildlib.a
Run Code Online (Sandbox Code Playgroud)

但是我无法通过链接来制作我的测试程序:

> cd ../test/
> make
g++ -I. -I../main -Imy_boost_install_dir/include -c -std=c++11 -o cpp/test.o cpp/test.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ makefile linker-errors

4
推荐指数
1
解决办法
8659
查看次数

标签 统计

c++ ×1

linker-errors ×1

makefile ×1