cmake managed / c ++错误LNK2020:未解析的令牌

时间:2016-09-09 12:54:14

标签: c++ cmake

我是托管c ++,cmake的新手,需要一些帮助才能实现这一目标。

我正在开发两个托管/ c ++库; A和B,想要第二个库 使用第一个。

无论我尝试什么,我得到:    MyClassB.cpp.obj:错误LNK2020:未解析的令牌(06000001)MyClassA ::。ctor

示例托管代码:

public ref class MyClassA
{
public:
  MyClassA();
  ~MyClassA();
};

示例cmake文件,库A

string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /clr /EHa /MDd /GS")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /clr /EHa /MD /GS")
add_library(MyClassA MODULE MyClassA.cpp)

示例cmake文件,库B

Similar to the one for library A, with this addition:
add_library(MyClassA MODULE IMPORTED)
If I uncomment the next line:
#target_link_libraries(MyClassB MyClassA)
I get this error:
Target "KM.Library.Types.Managedd" of type MODULE_LIBRARY may not be linked
into another target.  One may link only to STATIC or SHARED libraries, ...

上面的代码不是真正的代码,我找不到附加文件的方法: - (

无论如何,任务很简单我有两个托管/ c ++库和 想要将一个链接到另一个。链接步骤失败。

如果我在库A,EXPORTS / SYMBOLS部分上尝试dumpbin,还有一件事 是空的,这是对的吗?

此致

即使

1 个答案:

答案 0 :(得分:0)

似乎使用/ FU标志来解决问题