下一个问题是,当我打算生成应用程序的可执行文件时,系统会向我显示下一条消息:
undefined reference to `sum'
undefined reference to `rest'
undefined reference to `multi'
对于div,应用程序向我显示了错误的结果。
我可以创建程序包,也可以使用Cmake进行编译,并且系统不会向我显示错误,但是当我打算生成可执行文件时,系统会向我显示这些消息,我也不知道为什么,所以我向您展示我的使用者文件,例如CMakeLists和conanfile。我希望您能帮到我!
CMakeLists。 txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(Example C)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
SET(MyExample_SRC
"main.c")
add_executable(example ${MyExample_SRC})
target_link_libraries(example ${CONAN_LIBS})
conanfile.txt
[requires]
Exa/0.1@edwin/testing
[generators]
cmake
这是我用来创建程序包的conanfile.py:
from conans import ConanFile, CMake, tools
class ExaConan(ConanFile):
name = "Exa"
version = "0.1"
settings = "os", "compiler", "build_type", "arch"
generators = "cmake"
def source(self):
#self.run("CD C:/projects/connan-example/pkg")
pass
def build(self):
self.run("CD C:/projects/connan-example/pkg/ & Compile.bat")
#cmake = CMake(self)
#make.configure(source_folder="connan-example")
#cmake.build()
def package(self):
self.copy("MultiDiv.obj", dst="objects", keep_path=False)
self.copy("SumRest.c", dst="source", keep_path=False)
#self.copy("*.lib", dst="lib", keep_path=False)
def package_info(self):
#self.c_info.libs = ["example"]
pass
Compile.bat只是为MultDiv创建文件.obj,就像文件所示,我正在包装MultiDiv和SumRest。当我使用gcc命令编译并生成可执行文件时,我可以成功完成
答案 0 :(得分:0)
您缺少一些信息:
${CONAN_LIBS}
变量从依赖项package_info()
方法获取其值。由于您的package_info()
方法为空,因此它不会将信息传递给使用者,因此他们不需要如何链接。"lib"
目录中。或者,如果未将其打包(在package()
方法中)到该目录,则相应地定义self.cpp_info.libdirs=["yourlibdir"]