Создайте cmake файлы успешно, но не можете найти файл dll при выполнении - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу создать файл DLL и связать его.Я ссылаюсь на этот источник: https://zh.wikibooks.org/wiki/CMake_%E5%85%A5%E9%96%80/%E5%BB%BA%E7%BD%AE%E8%88%87%E9%80%A3%E7%B5%90%E7%A8%8B%E5%BC%8F%E5%BA%AB

Я делаю некоторые изменения для создания DLL и связываю его:

1.(./src/calc/CMakeLists.txt)

cmake_minimum_required(VERSION 2.6)

project(calc)
add_library(calc calc.c)

после изменения =>

cmake_minimum_required(VERSION 2.6)

project(calc)
add_library(calc SHARED calc.c)

2.(./src/calc/calc.h)

#ifndef CALC_H_
#define CALC_H_

int Cube(int x);

int Square(int x);

#endif

после изменения =>

#ifndef CALC_H_
#define CALC_H_ ()

#if defined(_WIN64) && defined(calc_EXPORTS)
#  if defined(LIBCALC_INTERNAL)
#    define LIBCALC_API __declspec (dllexport)
#  else
#    define LIBCALC_API __declspec (dllimport)
#  endif
#endif

#if !defined(LIBCALC_API)
#  define LIBCALC_API
#endif

LIBCALC_API int Cube(int x);

LIBCALC_API int Square(int x);

#endif

(./ src / calc / calc.c)

int Cube (int x) {return x * x * x;}

int Square (int x) {return x * x;}

после изменения =>

#define LIBCALC_INTERNAL
#include "calc.h"

LIBCALC_API int Cube(int x)
{
    return x * x * x;
}

LIBCALC_API int Square(int x)
{
    return x * x;
}

Do cmake:

cmake ../src -G "Visual Studio 15 2017"

MSBuild test_proj.sln

Перейти в каталог исполняемых файлов для выполнения:

/build/app/app.exe

Результат - "not find calc.dll"

Я копирую его из dll Builed Directory.Он выполняется нормально.

Я хочу выполнить после сборки.Не копируйте dll из каталога dll в каталог исполняемых файлов.Кто-нибудь может мне помочь?

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