我在編譯和鏈接miracl庫時遇到了問題。編譯和鏈接miracl C++
當我試圖編譯和鏈接MIRACL同時使用cmake我收到有關miracl.h文件中像奇怪的錯誤信息:
error: expected initializer before ‘mr_large’
的CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
project(OS-PSI)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -maes -O3 -mavx")
include_directories($ENV{HOME}/libscapi/lib/Miracl/include)
find_library(
LIBMIRACL
NAMES miracl
PATHS $ENV{HOME}/libscapi/install/lib/
NO_DEFAULT_PATH
)
set(SOURCE_FILES main.cpp)
add_executable(OS-PSI ${SOURCE_FILES})
target_link_libraries(OS-PSI ${LIBMIRACL})
main.cpp
#include <iostream>
#include <miracl.h>
#include <mirdef.h>
#include <ecn.h>
#include <big.h>
int main(int argc, char *argv[])
{
Big big1(12);
int partyId = atoi(argv[1]);
return 0;
}
我所要做的就是創建一個簡單的程序,使用miracl庫
重做'target_link_libraries'調用。它不會幫助重複庫;-)嘗試使用find_library來查找miracl庫的正確路徑。注意:你不應該在'#include'指令中使用相對包含路徑。通過'target_include_directories'指定include目錄來解決這個問題。 –