How to generate the correct .so file?
Hello,recently I want to use Cmake
instead of Makefile
to compile my project,but when I generate shared library,I meet a question,and the part of makefile as following:
...
Enclave/Enclave_t.o: Enclave/Enclave_t.c
@$(CC) $(Enclave_C_Flags) -c $< -o $@
@echo "CC <= $<"
Enclave/%.o: Enclave/%.cpp
@$(CXX) $(Enclave_Cpp_Flags) -c $< -o $@
@echo "CXX <= $<"
libenclave.so : Enclave/Enclave_t.o $(Enclave_Cpp_Objects) #generate the shared library
@$(CXX) $^ -o $@ $(Enclave_Link_Flags)
@echo "LINK => $@all
and The part of CMakelists.txt as following:
...
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_C_FLAGS ${Enclave_C_Flags})
SET(CMAKE_CXX_FLAGS ${Enclave_Cpp_Flags})
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${Enclave_Link_Flags}")
ADD_LIBRARY(enclave SHARED ${Enclave_Cpp_Files} ../build/Enclave_t.c)
when I use CMake
to generate libenclave.so,the shared library can't be used by other project to generate new shared library,but when I use Makefile
to generate libenclave.so,It works. I don't know what's wrong with CMakelist.txt, Thank you very much,I am looking forward to your reply!