链接到静态库而不是共享库时链接器问题

时间:2016-06-20 08:33:37

标签: c++ c static-libraries static-linking

我有一个C ++应用程序(df1 <- structure(list(Category = c("A", "A", "A", "B", "B", "B", "C", "C", "C", "C", "D", "D", "D", "D", "D", "D"), Value = c(123L, 123L, 122L, 121L, 121L, 121L, 10L, 10L, 10L, 11L, 23L, 23L, 23L, 23L, 22L, 23L)), .Names = c("Category", "Value"), row.names = c(NA, -16L), class = "data.frame") ),它链接到一个链接到静态C库B(app)的共享C ++库A(libA)。使用此配置,我的应用程序编译和链接就好了。 现在,如果我决定使libB成为静态库,我会在libA链接期间收到链接器错误。它说:&#34;错误:对app&#34;的未定义引用。 mpfitmpfit中的一项功能。如果我libB我得到:

nm libA

libA.cpp.o: // ... blah blah ... U mpfit // ... blah blah ... 是属于libA.cpp库的文件。

我使用CMake配置构建,libA的静态版本的配置与libA的共享版本的配置完全相同。

知道这里发生了什么吗?为什么只是从共享库切换到静态库会导致链接器错误?

0 个答案:

没有答案