ошибка LNK2001: неразрешенный внешний символ с CMake и каталогами C и C ++ - PullRequest
0 голосов
/ 27 июня 2018

Я новичок в CMake и также плохо знаком с компиляцией смешанного исходного кода. Я получил следующие ошибки при попытке компилирования с использованием CMake и Visual Studio 14.0

(Link target) -> main.obj : error LNK2001: unresolved external symbol ethash_get_cachesize main.obj : error LNK2001: unresolved external symbol ethash_get_datasize

Макет моего проекта такой:

У меня есть ethash_get_cachesize и ethash_get_datasize, определенные в internal.c в каталоге ethminer / libethash / это источник Си. Я уверен, что файл CMake, который поставляется с этим набором источников, в порядке, так как проект компилировался ранее без проблем, он дал мне проблемы с LINK только после того, как я добавил следующее:

У меня есть другой каталог / ethminer / dag / с исходным кодом C ++ "dag.cpp" и "dag.h", оба они являются файлами C ++. и файл CMake.

set(SOURCES
    DAG.h DAG.cpp
)

include_directories(BEFORE ..)

link_directories(BEFORE ..)

исходный файл C ++ "dag.cpp" включает #include <libethash/internal.h>

однако я боюсь, что мне чего-то не хватает, чтобы сказать CMake или Visual Studio найти нужные файлы из каталога, содержащего «internal.c»

любая помощь будет высоко ценится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...