我在编译和链接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目录来解决这个问题。 –