win32++库示例代码导致未定义的引用错误



我知道我昨天已经问过了,但这个线程中建议的解决方案是:

错误LNK1120:1未解析的外部-VS13 C

不起作用:/

我得到这个错误:

CMakeFilestestproject.dir/objects.a(main.cpp.obj): In function 
`Win32xx::LoadCommonControls()':
PATH/lib/Win32xx891/include/wxx_wincore.h:2844: undefined reference to 
`__imp_InitCommonControls'
PATH/lib/Win32xx891/include/wxx_wincore.h:2849: undefined reference to 
`__imp_InitCommonControls'

同时尝试运行win32++库中的示例代码。我已经尝试添加

#pragma comment(lib, "comctl32.lib")

正如我提到的线程中所建议的那样,到我的头上,但这没有起作用。他们还说,你可以通过链接comctl32库来解决这个问题,该库似乎没有加载,并导致了这个问题,通过在我的程序参数中添加-L-lcomctl32(我认为这就是方法,如果我错了,请纠正我(。这也于事无补。如果你知道问题出在哪里,请帮帮我。

编辑:

步骤:

  • 创建项目(c++14(
  • 下载win32++库文件
  • 用cmake添加它们(我调用include_directories((,够了吗?(
  • https://pastebin.com/w59ibVEZ
  • 用"-lcomctl32";作为程序参数
  • 撕裂

#pragma comment(lib, "comctl32.lib")用于MSVC,它在MinGW(或GCC(中不起任何作用。

符号InitCommonControls是在MinGW附带的libcomctl32.a中定义的,因此您只需要使用链接器标志-lcomctl32进行链接。

确保告诉CMake它是链接器标志,而不是编译器标志。