Я создавал проекты C и C++ в средах unix с использованием CMake. Тем не менее, я хочу также начать компиляцию в MSVC, и я пытаюсь разобраться в документации cmake, но я застрял. Я продолжаю получать следующее сообщение, когда пытаюсь построить.Получение CMake для создания общей библиотеки для MSVC
LINK: фатальным LNK1104 ошибка: не удается открыть файл 'Debug \ MyLibrary.lib' [C: \ песочница \ Проекты \ CPP \ DummyChelloWorld \ построить \ ма inProgram.vcxproj]
Можете ли вы скажи мне, что я делаю неправильно?
CMakeLists.txt
cmake_minimum_required(VERSION 3.4)
project(helloWorld)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include(GenerateExportHeader)
ADD_LIBRARY(MyLibrary SHARED myShared.cpp)
set(SOURCE_FILES main.cpp)
GENERATE_EXPORT_HEADER(MyLibrary
BASE_NAME MyLibrary
EXPORT_MACRO_NAME MyLibrary_EXPORT
EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/MyLibrary_Export.h
STATIC_DEFINE MyLibrary_BUILT_AS_STATIC
)
add_executable(mainProgram ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(mainProgram MyLibrary)
TARGET_INCLUDE_DIRECTORIES(mainProgram PUBLIC exports)
main.cpp
#include "myShared.h"
int main() {
sayHI();
return 0;
}
myShared.cpp
#include <iostream>
#include "myShared.h"
using namespace std;
void sayHI() {
cout << "Hello World lib" << endl;
}
myShared.h
#ifndef HELLOWORLD_HELLO_H
#define HELLOWORLD_HELLO_H
void sayHI();
#endif //HELLOWORLD_HELLO_H
TARGET_INCLUDE_DIRECTORIES (экспорт mainProgram PUBLIC}) - Я думаю, что есть у в конце фигурная фигурная скобка. – sebenalern
Спасибо и приятно поймать, но это была ошибка копирования и вставки. Я исправил его в своем посте. Все та же проблема. Большие глаза на детали. – loneraver
Возможно, файл заблокирован. Попробуйте создать чистый каталог. – Antonio